程序報錯?太常見了,咱們能夠想辦法修理好它
number="hello" try: #有可能出錯的語句 number=int(number) except Exception: print("出錯了") else: print("沒錯的時候運行")
except後面指定了報錯的異常類,在python中重要的內建異常類有:python
...
除了上述列出來的,其實python的異常類還有不少,當在except後面指定異常類以後,那麼只有報這個類型異常的時候纔會輸出「出錯了」
固然咱們也能夠去掉Exception,這樣任何異常均可以捕獲到
捕獲多個異常如何作this
#指定多個異常 number="hello" try: #有可能出錯的語句 number=int(number) except ValueError: print("ValueError出錯了") except Exception: print("Exception出錯了") else: print("沒錯的時候執行的語句") finally: print("不管發不發生異常,都會執行的語句") #指定多個異常 number=[1,2,3] try: #有可能出錯的語句 number=number[4] except (ValueError,NameError,IndexError): print("出錯了") else: print("沒錯的時候運行")
儘管python給咱們提供了不少內置的異常類,可是仍是不能知足精肯定位的問題,咱們能夠經過建立一個新的exception類擁有本身的異常,異常應該繼承自Exception類,能夠直接繼承,也能夠間接繼承code
class MyError(Exception): def __init__(self): pass def __str__(self): return "this is error" def Calc(): raise MyError() #經過raise語句拋出一個錯誤的實例 Calc()