Python例外処理について

Python

今回は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:
    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

カスタム例外

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)
タイトルとURLをコピーしました