例外処理・ファイル操作・クラス基礎応用問題

以下のコードで multiple_except 関数を実行した場合、複数の例外がネストしたとき最初に捕捉される例外はどれですか? def multiple_except(): try: try: x = [1, 2, 3] print(x[10]) except ValueError: raise KeyError("Inner error") except IndexError: return "IndexError caught" except KeyError: return "KeyError caught"

A.KeyError
✗ IndexError は内側の try で発生し、外側の except IndexError で捕捉されるため、KeyError は発生しません。
B.IndexError← 正解
✓ 正解です。内側の try でリストのインデックスエラー(IndexError)が発生し、外側の except IndexError で最初に捕捉されます。
C.ValueError
✗ ValueError は発生せず、IndexError が先に捕捉されます。
D.Exception
✗ Exception は基本クラスですが、より具体的な IndexError が先に捕捉されます。

Python 3 エンジニア認定基礎試験 の問題一覧