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

次のコードを実行するとどうなるか。 try: result = 10 / 0 except Exception: print("一般エラー") except ZeroDivisionError: print("ゼロ除算エラー")

  • A「ゼロ除算エラー」が出力される
  • ✓「一般エラー」が出力される
  • C両方の文字列が出力される
  • Dexcept節の順序が不正なため定義時にSyntaxErrorになる

解説

ZeroDivisionErrorはExceptionのサブクラスであるため、先に書かれたexcept Exceptionで捕捉されてしまい、後続のexcept ZeroDivisionErrorには到達しない。定義時にはエラーにならず実行時にこの挙動となる。

根拠Pythonチュートリアル8章 エラーと例外(複数のexcept節と例外クラスの階層)

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