PYTHON 異常的使用(2)
#簡單一場案例3
try:
num=int(input('please input your number'))
rst=100/num
print('計算結果為{0}'.format(rst))
except ZeroDivisionError as e:
print('counter problem')
print(e)
except NameError as e:
print('名字起錯了')
print(e)
exit()
except AttributeError as e:
print('好像屬性有問題')
print(e)
exit()
#所有異常都是繼承自Exception
#此語句任何的異常都會被攔截
#並且這句話一定要是最後一個
except Exception as e:
print('具體錯誤不知道')
-注:如果知道的具體的錯誤需要寫在前面
在異常繼承關係中,越是子類的異常,越要往前放,父類的異常需要往後放
-使用者手動引發的異常
某些情況下使用者希望自己引發一個異常的時候使用
raise 關鍵字來引發異常
#raise案例
try
print('我愛哈爾濱')
print('前方到站哈爾濱')
#手動異常語法
raise ValueError
print('賊冷')
except NameError as e:
print('NameError')
except ValueError as e:
print('ValueError')
except Exception as e:
print('具體錯誤不知道')
finally:
print('over')
>>我愛哈爾濱
>>前方到站哈爾濱
>>valueError
>>over
#raise案例-2
#此處還可以自己定義異常
#但是自己定義的異常必須是系統異常的子類
class PandaError(ValueError):
pass
try
print('我愛哈爾濱')
print('前方到站哈爾濱')
#手動異常語法
raise PandaError
print('賊冷')
except NameError as e:
print('NameError')
except PandaError as e:
print('PandaError')
except ValueError as e:
print('ValueError')
except Exception as e:
print('具體錯誤不知道')
finally:
print('over')
>>我愛哈爾濱
>>前方到站哈爾濱
>>PandaError
>>over
-else語句案例
try:
num=int(input('please input your number'))
rst=100/num
print('計算結果為{0}'.format(rst))
except Exception as e:
print('出錯')
else:
print('無措')
finally:
print('over')
>>please input your number50
>>計算結果為2
>>無措
-關於自定義異常問題(瞭解)
如果是自定義異常則推薦自定義異常
在自定義異常的時候一般要有一下內容
自定義異常發生異常的異常程式碼
發生異常後的提升
自定義發生異常的行數