始める無料で始める

例外を補足する

独自のカスタム例外を書く前に、まずは例外処理の基本をしっかり確認しましょう。

この演習では、2つの引数、リスト x とインデックス ind を受け取り、そのインデックスの要素を反転(逆数に)する関数 invert_at_index(x, ind) が与えられています。たとえば、invert_at_index([5,6,7], 0)1/5、つまり 0.2 を返します。

あなたの目標は、発生したエラーの種類に応じてカスタム例外を発生させられるよう、エラー処理を実装することです。

この演習はコースの一部です

Pythonによるオブジェクト指向プログラミング入門

コースを見る

演習の手順

関数内で try - except - except パターン(except ブロックは2つ)を使って、次の2つの例外を捕捉して処理してください。

  • まずはそのままコードを try 実行し、1/x[ind] を返します。
  • ZeroDivisionError が発生したら、"Cannot divide by zero!" と表示します。
  • IndexError が発生したら、"Index out of range!" と表示します。

正しくできていれば、エラーなくコードが実行され、コンソールの出力は次のようになります。

0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Modify the function to catch exceptions
def invert_at_index(x, ind):
  ____:
    return 1/x[ind]
  _____:
    print("____")
  ____:
    print("____")
 
a_list = [5,6,0,7]

# Works okay
print(invert_at_index(a_list, 1))

# Potential ZeroDivisionError
print(invert_at_index(a_list, 2))

# Potential IndexError
print(invert_at_index(a_list, 5))
コードを編集して実行