簡體   English   中英

我們如何編寫一個什么都不捕獲的`except`語句?

[英]How do we write an `except` statement which catches nothing?

我想要一個try塊,這樣在try塊內引發的任何異常都不會被處理。 這樣我就可以編寫一個 try 塊來為將來做准備。 總有一天,我會寫一些有意義的錯誤處理。 但是,我還沒有真正的except語句。 以下類型的作品,但很丑

_ = type("", (Exception,), dict())

try:
    lizard = [1, 2, 3]
    y = z + w
    print(lizard[983])
except _:
    print("I hope this string never prints")

完全跳過except子句。 try語句至少需要一個except子句finally子句,無論您是否捕獲異常,它都會執行。

try:
    lizard = [1, 2, 3]
    y = z + w
    print(lizard[983])
finally:
    pass

finally子句實際上不會執行任何代碼,並且不會以任何方式影響代碼的控制流; 它只是在您離開try語句之前注入一個空操作,無論是通過成功完成代碼還是通過引發未捕獲的異常。

一旦開始添加except子句,您可以刪除finally子句或將其保留在原處。

(刪除的答案會捕獲並立即重新引發任何異常,這也很好 IMO:

try:
    ...
except Exception:
    raise

)

try:
   # do something
except:
   pass   # this will make nothing

pass 關鍵字用於此目的。 當您什么都不想做時,只需編寫一些代碼,然后再回來考慮您真正想在那里做什么(或者至少我就是這樣使用它的)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM