102. 介紹一下Python的異常處理機制和自己開發過程中的體會?

異常處理機制

try...except...

try後面放可能出錯的語句,except後面放錯誤的處理辦法

try...except...finally...

無論異常是否發生,finally語句都會執行

try...except...else...finally...

如果錯誤不發生則執行else中的內容,並且繼續向下執行

raise語句指定一個異常

def is_work_done():
    a=3/1
    return a

try:
    is_work_done()
    raise NameError("HELLO")
except:
    print("hello")
    raise  #raise的唯一參數是異常的類或者實例(也就是exception的子類)
如果你只想知道這是否拋出了一個異常,並不想去處理它,那麼一個簡單的 raise 語句就可以再次把它拋出。

自定義異常

class MyError(Exception):
    def __init__(self,value):
        super().__init__() 
        self.value=value
try:
    raise MyError(9)
except MyError as e:
    print(e.value)

注意事項

  1. 只處理你知道的異常,避免捕獲所有異常然後吞掉它們。
  2. 拋出的異常應該說明原因
  3. 如果有需要,切記使用finally來釋放資源
  4. 如果有需要,請不要忘記在處理異常後做清理工作或者回滾操作

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章