Python 模擬試験

Python基礎 模擬試験 第6回 問29・8章 エラーと例外(後片付け動作)

入れ子の try と finally

次のコードを実行したときの出力として、正しいものを1つ選べ。

try:
    try:
        raise ValueError
    finally:
        print("inner")
except ValueError:
    print("outer")
  1. A

    outer と inner が、この順に出力される。

  2. B

    outer のみが出力される。

  3. C

    inner のみが出力され、例外が処理されないまま終了する。

  4. D

    inner と outer が、この順に別々の行に出力される。

正解と解説を見る

正解:D

finally 節は、例外が外側に伝わる前に実行される。

順実行する行実行後の変数
1`try:`—
2`try:`—
3`raise ValueError`—
4`print("inner")`—
5`except ValueError:`—
6`print("outer")`—
分岐`finally:`実行される
分岐`except ValueError:`実行される
結果実際の出力inner / outer

学習のポイント:後片付けの動作は、例外の有無によらず実行される。

この問題を演習で解く →

問題一覧へ

このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。