Pythonの例外

エラーを処理する方法を持つことが重要です。

Pythonは例外処理を提供します。

コードの行をに折り返す場合try:ブロック:

try:
    # some lines of code

エラーが発生した場合、Pythonは警告を表示し、を使用して発生したエラーの種類を判別できます。exceptブロック:

try:
    # some lines of code
except <ERROR1>:
    # handler <ERROR1>
except <ERROR2>:
    # handler <ERROR2>

使用できるすべての例外をキャッチするにはexceptエラータイプなし:

try:
    # some lines of code
except <ERROR1>:
    # handler <ERROR1>
except:
    # catch all other exceptions

ザ・else例外が見つからなかった場合、ブロックが実行されます。

try:
    # some lines of code
except <ERROR1>:
    # handler <ERROR1>
except <ERROR2>:
    # handler <ERROR2>
else:
    # no exceptions were raised, the code ran successfully

Afinallyブロックを使用すると、エラーが発生したかどうかに関係なく、どのような場合でも何らかの操作を実行できます

try:
    # some lines of code
except <ERROR1>:
    # handler <ERROR1>
except <ERROR2>:
    # handler <ERROR2>
else:
    # no exceptions were raised, the code ran successfully
finally:
    # do something in any case

発生する特定のエラーは、実行している操作によって異なります。

たとえば、ファイルを読んでいる場合は、EOFError。数値をゼロで割ると、ZeroDivisionError。型変換の問題がある場合は、TypeError

このコードを試してください:

result = 2 / 0
print(result)

プログラムはエラーで終了します

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    result = 2 / 0
ZeroDivisionError: division by zero

and the lines of code after the error will not be executed.

Adding that operation in a try: block lets us recover gracefully and move on with the program:

try:
    result = 2 / 0
except ZeroDivisionError:
    print('Cannot divide by zero!')
finally:
    result = 1

print(result) # 1

You can raise exceptions in your own code, too, using the raise statement:

raise Exception('An error occurred!')

This raises a general exception, and you can intercept it using:

try:
    raise Exception('An error occurred!')
except Exception as error:
    print(error)

You can also define your own exception class, extending from Exception:

class DogNotFoundException(Exception):
    pass

pass here means “nothing” and we must use it when we define a class without methods, or a function without code, too.

try:
    raise DogNotFoundException()
except DogNotFoundException:
    print('Dog not found!')

More python tutorials: