LoginSignup
0
0

More than 1 year has passed since last update.

自作エラーの定義の仕方

Posted at

まずは定義

class err(Exception):
    pass

Exceptionクラスを継承するだけで自作エラーが定義できます

自作エラーを発生させる

class err(Exception):
    pass

raise err('エラーメッセージ')

raise エラー でわざとエラーを発生させることができます
すると

Traceback (most recent call last):
  File "Main.py", line 4, in <module>
    raise err('エラーメッセージ')
__main__.err: エラーメッセージ

こんな感じのエラーが表示されます

もちろんtry-exceptでエラーをキャッチすることもできます

class err(Exception):
    pass

try:
    raise err('エラーメッセージ')
except err as e:
    print(e)
エラーメッセージ

オマケ

class err1(NameError):
    pass

class err2(KeyError):
    pass

class err3(IndexError):
    pass

class err4(OSError):
    pass

class err5(SyntaxError):
    pass

Exception以外でもエラーであればなんでも継承することができます(なぜかSyntaxErrorも継承できる)

インデックスとか何も間違ってないのにSyntaxErrorが出てきたら怖いし夢に出てきそうなのでSyntaxErrorは継承しない方がいいと思います

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0