異常概述
在程式運行途中,經常會遇到各式各樣的錯誤,這些錯誤被統稱為異常。這類錯誤大部分都是SyntaxError : invaild syntax(無效的語法)
舉例
1
| NameError: name 'sss' is not defined
|
異常處理語句,使用try…except
1 2 3 4 5 6 7
| try: block1 except [ExceptionName[as alias]]: block2
|
舉例
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| def divsion(): nums = int(input()) if nums != 0: print("num 不等於 0")
if __name__ == '__main__': try: divsion() except ZeroDivisionError: print("不是整數") except ValueError as e : print("輸入錯誤")
|
如果需要同時處理多個異常……
1 2 3 4 5 6
| if __name__ == '__main__': try: divsion() except (ValueError, ZeroDivisionError) as e: print("Error: ", e)
|
這樣就能印出是出了甚麼問題
異常處理語句,使用try…except…else
在上面的程式碼加上
異常處理語句,使用try…except…finally
finally加上後,代表不論發生甚麼狀況,都會執行這些程式碼
1 2
| finally: print("already")
|
使用raise語句拋出異常
1
| raise [ExceptionName[(reason)]]
|
舉例,可以修改成……
1 2 3 4 5 6 7 8 9 10
| def divsion(): nums = int(input()) if nums >= 0: print("num 大於 0") if nums == 5: raise ValueError("Nope")
|