1,空的except語句將會捕捉所有的異常,可以用sys模組中取出異常名和異常的值
2,raw_input()讀檔案到末尾時,會引發eoferror異常,這種異常不是錯誤
3,finally只做清楚工作,不做異常處理
異常處理的例子:
myexception="error"defraise1():raisemyexception,"hello"defraise2():
raisemyexception
deftryer(func):
try:
func()
exceptmyexception,extrainfo:
importsys
printsys.exc_type
print"got this:",extrainfo
執行的例子:
fromexcimport*tryer(raise1)
tryer(raise2)
報錯:typeerror: exceptions must be old-style classes or derived from baseexception, not str
原因:in python 2.5 and below, your code would work, as then it was allowed to raise strings as exceptions. this was a very bad decision, and so removed in 2.6.
改寫後的例子:
classmyexception(exception):passdefraise1():
raisemyexception,"hello"defraise2():
raisemyexception
deftryer(func):
try:
func()
exceptmyexception,extrainfo:
importsys
printsys.exc_type
print"got this:",extrainfo
讓自己編寫的異常類全部繼承於exception頂級異常類就行了
python中異常語句 python 異常
導航 python的異常分為兩種,1 語法錯誤,在python直譯器的語法檢測中不通過不能執行 2 異常,python程式執行期檢測到的錯誤被稱為異常。在沒有做異常處理時,將終止程式並提示異常資訊,如 字串轉換為數字時的型別轉換異常,檔案讀取時的檔案不存在異常,網路鏈結時主機不可達異常 等。當pyt...
python中的異常
exception類是最常用的異常類,該類包括standarderror,stopiteration,generatorexit,warning等異常類.standarderror類是python的錯誤異常,如果程式中出現邏輯上的錯誤,將引發該異常.例如除數為0的異常。standarderror類是...
python中的異常
try語句按照如下方式工作 乙個 try 語句可能包含多個except子句,分別來處理不同的特定的異常。最多只有乙個分支會被執行。處理程式將只針對對應的try子句中的異常進行處理,而不是其他的 try 的處理程式中的異常。乙個except子句可以同時處理多個異常,這些異常將被放在乙個括號裡成為乙個元...