python 異常處理

來源:互聯網
上載者:User

標籤:bsp   nal   self   img   elf   添加   trace   分享圖片   index   

 

什麼是異常?異常和錯誤的區別    Error  語法錯誤   比較明顯的錯誤 在編譯代碼階段就能檢測出來    Iteration 異常  在執行代碼的過程中引發的異常異常發生之後的效果    一旦在程式中發生異常,程式就不再繼續執行了如何看報錯資訊    l = []    l[3]    def func():        import time        time.ti()    def main():        func()    main()
最簡單的異常處理l = [‘登入‘,‘註冊‘,‘退出‘]for i in enumerate(l,1): print(i[0],i[1])try: num = int(input(‘num :‘)) print(l[num-1])except IndexError: print(‘請輸入一個數字‘)多分支異常處理l = [‘登入‘,‘註冊‘,‘退出‘]for i in enumerate(l,1): print(i[0],i[1])try: num = int(input(‘num :‘)) print(l[num-1])except ValueError: print(‘請輸入一個數字‘)except IndexError: print(‘您輸入的數字無效‘)萬能異常try: name # NameError dic = {} dic[‘key‘]except Exception as 變數名: #Exception為所有異常的父類 print(type(變數名),變數名,變數名.__traceback__.tb_lineno)萬能異常和其他分支合作 : 萬能異常永遠要放在所有except的最後try: name [][3] import aexcept NameError:passexcept IndexError:passexcept Exception:pass異常處理的其他機制try: name [][3]except IndexError:print(‘index error‘)except NameError:print(‘name error‘)try: name [][3]except (IndexError,NameError) as e: print(e)try: a = 1 # name # [][3]except NameError: print(‘name error‘)except Exception: print(‘萬能異常‘)else: # try中的代碼正常執行 沒有異常的時候會執行else中的代碼 print(‘執行else了‘)finally: # 無論如何都會執行 作業系統資源歸還的工作 print(‘執行finally了‘)try: f = open(‘file‘,‘w‘) # f.read() exit()except:pass # 複雜的邏輯finally: f.close() print(‘執行我啦‘)def func(): try: f = open(‘file‘, ‘w‘) return f.read() finally: f.close() print(‘執行我了‘)func()try/excepttry/except/elsetry/except/else/finallytry/except/finallytry/finally主動拋異常try: num = int(input(‘>>>‘))except Exception: print(‘在出現了異常之後做點兒什麼,再讓它拋異常‘) raise # 原封不動的拋出try語句中出現的異常自訂異常raise NameError(‘這是一個name error的異常‘)class EvaException(Exception): def __init__(self,msg): self.msg = msgraise EvaException(‘這是一個什麼什麼錯誤,有什麼問題‘)斷言assert 布爾值assert Trueif False: print(1234234)else: raise AssertionError使用異常處理的注意事項斷言 assert raise 主動拋異常異常處理 try/except try/except/else try/except/else/finally try/except/finally try/finallystrat.pyif __name__ == ‘__main__‘: try: core.main() except Exception: pass盡量少用異常處理能通過邏輯規避的應該代碼邏輯規避掉應該對某一句/幾句話來進行處理最後 在外層添加一個大的異常處理

 

python 異常處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.