python使用異常對象來表示異常情況。遇到異常後,會引發異常,如果異常對象未被處理或捕獲,程序就會用回溯並終止執行。如果知道某段代碼可能導致某種異常,如除零,又不希望終止,那麽就根據需要添加try/except 或者try/finally進行處理。
雖然使用條件語句也能實現與異常處理同樣的功能,但是條件語句可能在自然性和可讀性上差些,所以盡量使用異常處理機制。(在做一件事時去處理可能出現的錯誤,而不是在開始做事前就進行大量的檢查)
每個異常都是一些類的實例,常見的異常類有:
Exception 所有異常類的基類
AttributeError 特性引用或賦值失效導致
IOError 試圖打開不存在的文件
IndexError 序列中索引越界
KeyError 使用映射中不存在的鍵
NameError 找不到名字或者變量
SyntaxError 語法錯誤
TypeError 類型錯誤
ValueError 值錯誤
ZeroDivisionError 除0錯誤
自定義異常類
class CustomException(Exception):pass
拋出異常
raise Exception(“some thing error.”)
捕獲異常
使用try/except 語句
try:
x = input("Enter the first number : ")
y = input("Enter the second number : ")
print x / y
except ZeroDivisionError:
print “The Second number can't be zero!”
捕獲多個異常
try:
code
except ZeroDivisionError:
print “The Second number can't be zero!”
except TypeError:
print “That wasn't a number.”
另一種形式
except (ZeroDivisionError, TypeError, NameError):
print “some thing wrong.”
捕捉所有異常
except:
print “some thing wrong.”
或者
except Exception, e:
print e
它可以讓程序繼續運行,並且能打印錯誤。
else語句,當沒有異常發生時做某些動作
try:
code
except:
pass
else:
pass
finally語句,用來在可能的異常後進行清理
try:
code
finally:
pass
不管try中是否發生異常,finally語句總會執行
Tags: python except number second Enter
文章來源: