これに似たPythonコードにセットアップがあります:
def a():
raise MyUserDefinedException()
def b():
a()
def c():
a()
def d():
b()
c()
def main():
try:
d()
except MyUserDefinedException as e
print e
ただし、例外がb()またはc()のどちらで発生したかに応じて、異なるものを出力したいと考えています。さまざまな設計上の理由から、すべての印刷を main() で処理する必要があります。
これについて最善の方法は何ですか?MyUserDefinedException をキャッチする b() と c() に、そのメソッドに固有の新しい例外を発生させるための try-catch ブロックが必要ですか、それともトレースを検査するクリーンな方法がありますか?