您好,登錄后才能下訂單哦!
小編給大家分享一下python如何異常處理try except,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
某些時候我們能夠預判程序可能會出現何種類型的錯誤,而此時我們希望程序繼續執行而不是退出,此時就需要用到異常處理;下面是常用的幾種異常處理方法
#通過實例屬性 列表 字典構造對應的異常 class Human(object): def __init__(self, name, age, sex): self.name = name self.age = age def get_info(self): print("my name is %s,age is %s"%(self.name, self.age)) man1 = Human("李四", 22, "man") list1 = [1, 2, 3] dict1 = {"name":"張三", "age":12} #異常捕獲的語法 try: man1.get_info1() except AttributeError as e: #AttributeError為錯誤類型,此種錯誤的類型賦值給變量e;當try與except之間的語句觸發 # AttributeError錯誤時程序不會異常退出而是執行except AttributeError下面的內容 print("this is a AttributeError:",e) finally: print("this is finally") try: man1.get_info() #list1[3] #dict1["sex"] except AttributeError as e: print("this is a AttributeError:",e) else: print("一切正常") #當try與except之間內容沒有觸發捕獲異常也沒有異常退出就會跳過except轉到執行else下面的語句 finally: print("this is finally")#不論程序是否觸發異常,只要沒有退出都會執行finally下面的內容 try: list1[3] dict1["sex"] except (IndexError, KeyError) as e: #當需要捕獲多個異常在一條except時候可以使用這種語法,try與except之間語句觸發任意一個異常捕獲后就跳到except下面的語句繼續執行 print("this is a IndexError or KeyError:",e) try: list1[3] dict1["sex"] except IndexError as e:#當需要分開捕獲多個異常可以使用多條except語句,try與except之間語句觸發任意一個異常捕獲后就跳到對應except執行其下面的語句,其余except不在繼續執行 print("this is a IndexError:",e) except KeyError as e: print("this is a KeyError:",e) try: man1.get_info1() except IndexError as e: print("this is a IndexError:",e) except Exception as e: print("this is a OtherError:",e)#可以使用except Exception來捕獲絕大部分異常而不必將錯誤類型顯式全部寫出來 #自己定義異常 class Test_Exception(Exception): def __init__(self, message): self.message = message try: man1.get_info() raise Test_Exception("自定義錯誤")#自己定義的錯誤需要在try與except之間手工觸發,錯誤內容為實例化傳入的參數 except Test_Exception as e: print(e)
以上是“python如何異常處理try except”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。