Python 例外処理のサンプル(try…exceptとraise)

Pythonの例外処理のサンプルです。try ... except文とraise文を使用します。

確認環境
・Python 3.7.0

目次

例外処理 try...except文
  raise文
  独自の例外を作成する

try...except文

try:
   処理
except 例外クラス名 [as 変数名]:
   処理
else:
  処理
  • tryの処理で例外が発生した場合、exceptの例外処理が実行されます。
  • 例外クラス名は、キャッチする例外を記述します。
  • exceptの最後にあるas 変数名は省略可能です。
  • elseは例外が発生しなかったときに実行されます。
  • 以下はPythonの公式ドキュメントの「8.3. 例外を処理する」のリンクです。
    https://docs.python.org/ja/3/tutorial/errors.html#handling-exceptions

try...except文のサンプルです。

# coding: utf-8

try:
	a = 100/0
except Exception:
	print("エラーです") #エラーです
else:
	print("終了")

4行目は数値を0で割るのでエラーになります。
5行目は、エラーをキャッチし6行目の文言を表示ます。
8行目の文言は表示されません。

try...except...finally文

try:
   処理
except 例外クラス名 [as 変数名]:
   処理
finally:
  処理
  • finallyは、エラーがなくてもあっても必ず実行されます。
# coding: utf-8

try:
	a = 100/0
except Exception:
	print("エラーです") #エラーです
finally:
	print("終了") #終了

7行目は、finallyでエラーが発生しても8行目は実行されます。

raise文

raise 例外クラス名(引数の値)

raise文のサンプルです。

# coding: utf-8

try:
	a = 100/10
	raise Exception('例外のテスト')

except Exception as e:
	print(e) # 例外のテスト

5行目は、raise文で強制的に例外を発生させています。
7行目のexceptでキャッチし、8行目は5行目の引数の値を表示します。

raise文の引数が2つあるサンプルです。

try:
	a = 100/10
	raise Exception('例外のテスト','err1')

except Exception as e:
	print(e) # ('例外のテスト','err1')

3行目は、引数が2つあります。引数は任意の数を指定できます。
6行目は、タプルで3行目の引数の値が表示されます。

独自の例外を作成する

独自の例外を作成するには、Exceptionクラスを継承します。

# coding: utf-8

class TestException(Exception):
    pass

def calc1(a):
    if a == 0:
        raise TestException('独自例外')
    return

a = 0

try:
    calc1(a)
except TestException as e:
    print(e) # 独自例外
finally:
    pass

3行目で、Exceptionクラスを継承して独自の例外を作成しています。
8行目は、独自のエラーをraiseしています。
15行目でcatchされ「独自例外」と表示されます。

関連の記事

Python タプルの仕組みと使い方のサンプル(tuple)
Python 関数のサンプル
Python ローカル変数とグローバル変数

△上に戻る