資格スワイプ
入出力・エラーと例外・クラス・標準ライブラリ・対話環境(7,8,9,10,14章)

低レベルの例外処理中に別の例外を送出する際、元の例外情報を保持したまま新しい例外を送出したい。このときraise NewError("...") from original_error のように記述する構文の目的として、最も適切なものはどれか。

  • Araise ... from ... を使うと、from句に指定した元の例外の情報は破棄される
  • ✓raise ... from ... を使うと、元の例外情報を__cause__属性として保持したまま新しい例外を送出できる
  • Craise ... from ... はtry文のfinally節の中でのみ使用できる構文である
  • Draise ... from ... を使うと例外は送出されず、警告として扱われる

解説

raise ... from ... という構文は例外連鎖(exception chaining)を明示的に行うもので、新しい例外の__cause__属性に元の例外オブジェクトを設定し、トレースバックに両方の情報が表示されるようにする。

根拠8章 エラーと例外(例外の連鎖)

← 前の問題次の問題 →
スワイプでまとめて流す