今回はPython例外処理について紹介します。
すべての例外をキャッチ
try:
print(num)
except Exception as e:
print(e)
try:
print(num)
except BaseException as e:
print(e)
指定例外をキャッチ
try:
print(num)
except NameError as e:
print(“NameError”)
複数の例外をキャッチ
try:
print(num)
except NameError as e:
print(“NameError”)
except ZeroDivisionError as e:
print(“ZeroDivisionError”)
try:
print(num)
except (NameError,ZeroDivisionError) as e:
print(e)
正常終了時の処理: else
try:
結果:
1
no error
print(1)
except Exception as e:
print(e)
else:
print(“no error”)
結果:
1
no error
終了時に常に行う処理: finally
try:
print(ss)
except Exception as e:
print(e)
else:
print(“no error”)
finally:
print(“finally”)
結果:
name ‘ss’ is not defined
finally
結果:
name ‘ss’ is not defined
finally
カスタム例外
class ShortInputError(Exception):
def __init__(self, length, min_len):
self.length = length
self.min_len = min_len
def __str__(self):
return f’current length: {self.length}, min length:{self.min_len}’
try:
name = “test”
if len(name) <10 :
raise ShortInputError(len(name), 10)
except Exception as e:
print(e)