簡體   English   中英

Python:僅在未捕獲時執行異常代碼

[英]Python: Execute Exception code only if not caught

假設我想讓一個異常總是觸發一些代碼,比如寫一個文件或調用一個外部程序,但前提是它沒有被捕獲。 我怎樣才能做到這一點?

一個不工作的例子:

class MyError(Exception):
    def __init__(self):
        with open('foo.txt', 'a') as stream:
            stream.write("Something bad happened.\n")

try:
    raise MyError()
except:
    print("Just kidding.")

將代碼放在圍繞整個腳本的try/except塊中。

try:
    main()
except MyError:
    with open('foo.txt', 'a') as stream:
        stream.write("Something bad happened\n")

如果main()中的任何內容捕獲了異常,則不會在此處捕獲,因此不會記錄任何內容。

暫無
暫無

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

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