レッスン3 / 6問目

『else, finally(例外処理)』

このレッスンでは例外処理において終了時の処理を行うelseとfinallyについて学習していきましょう。

まずはelseから見ていきます

elseの使い方

if文やwhile文でもelseを使用することができましたが、try文でもelseを使用することができます。

elseを使用するとtry文が正常終了した場合の処理を記述することができます。
正常終了とは例外が発生しなかった場合のことです。

ではelseの使い方について見ていきましょう。

elseは以下のようにtry, exceptの後に記述します。

try:     例外処理の対象とするコード except:     例外発生時の処理 else:     正常終了した際の処理

elseの処理はtry~exceptの間に記述したコードで例外が発生しなかった場合に実行されます。

具体例

では具体例について見ていきましょう。

以下のtry文では例外は発生せず、elseの処理が実行されます。

  1. a = [0, 1, 2, 3]
  2. try:
  3.     a[0]    # 例外は発生しない
  4. except IndexError:
  5.     print("例外発生!")
  6. else:    # 正常終了した場合に実行される
  7.     print("正常終了しました")
正常終了しました    # elseの処理

例外が発生した場合は、elseの処理は実行されない点に注意してください。

finallyの使い方

では次はfinallyについて見ていきましょう。

finallyではtry文が終了した場合の処理を記述することができます。elseと同様にtry, exceptに続けて以下のようにfinallyを記述します。

try:     例外処理の対象とするコード except:     例外発生時の処理 finally:     try文が終了した際の処理

このようにfinallyはelseとよく似ています。これらの異なる点は、elseは正常終了した場合に実行され、finallyは終了時の処理である点です。

つまり、finallyは例外が発生したか否かに関わらず常に実行される処理であるということです。また、finallyはexceptやelseより後に記述しなければなりません。

except例外発生時の処理
else正常終了時の処理
finallytry文の終了時に常に実行される処理


では演習課題にチャレンジしましょう。

Lesson1

エディタ上のtry文にelseを使用して、正常終了した際の処理を記述してください。
なお、正常終了した際の処理は以下のとおりとします。

Lesson2

エディタ上のtry文にfinallyを使用して、終了時の処理を記述してください。
なお、finallyの処理は以下のとおりとします。

Last updated:2019/12/18

elseの処理が実行されました
例外発生!
finallyが実行されました
  1. # 1. elseを用いて、try文が正常終了した際の処理を記述してください
  2. try:
  3. a = 8 / 2
  4. except ZeroDivisionError:
  5. print("例外発生!")
  6. else:
  7. print("elseの処理が実行されました")
  8. # 2.finallyを用いて、try文が正常終了した際の処理を記述してください
  9. try:
  10. a = 8 / 0
  11. except ZeroDivisionError:
  12. print("例外発生!")
  13. finally:
  14. print("finallyが実行されました")
main.py
設定
g
n
i
d
a
o
L