Python の他のオブジェクトと同様に、例外には属性があります。例外の属性を調べることができます。次の例を検討してください。
>>> try:
import some_junk_that_doesnt_exist
except Exception as error:
print(dir(error))
['__cause__', '__class__', '__context__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__suppress_context__', '__traceback__', '_not_found', 'args', 'msg', 'name', 'path', 'with_traceback']
これは、リスト内の例外ごとに、例外の属性にアクセスできることを意味します。したがって、次のことができます。
for e in err:
print(e.args)
print(e.name)
print(e.msg)
ただし、私が思いつくことの 1 つは、次の行が実際にはエラー リストに複数の例外を追加するべきではないということです。
except Exception as e:
errors.append(e)
他の誰かが私よりもよく知っているでしょうが、例外は常にここで 1 つのことになるのではないでしょうか (複数の特定の例外をキャプチャしない限り)。