[TIL]Python.Exceptions


Exceptions


Exceptionとは、予期せぬエラーが発生した場合を除きます.
short_list = [1, 2, 3]
3つの要素のリストを使用してインデックス[3]を作成すると、IndexErrorエラーが発生します.
最初からこのような例外が発生しないようにコードを実装することが望ましいが、実際には常に実行可能ではない(ユーザ入力に基づいて任意の演算を行う場合、例外が発生する可能性が高い)
通常、Exceptionが発生した場合、以下のコードは発生したコード位置では実行されず、すぐにプログラムを終了します.ただし、例外が発生した場合は、プロセスを終了することなく、他の論理を実行した後にプログラムを停止できます.これを異常処理と呼ぶ.
Exception handlingはtry以外の構文で実行されます.
try: 
	문장1 
	문장2
	 ...
	 문장N

except Exception:
	exception이 났을 경우 실행할 예외 처리코드 
finally: 
	Exception 여부와 상관없이 항상 마지막에 실행되는 코드
上記のリストの例でIndexErrorが表示された場合、プログラムを終了するのではなく、エラーメッセージを出力して-1を返すことができます.
def return_elem_or_minus_one(index): 
	short_list = [1, 2, 3]
	elem = 0 

	try:
		elem = short_list[index] 
		print("이 문장은 exception이 발생되면 실행되지 않습니다!")
	except IndexError: 
		print(f"이 문장은 Exception이 발생하면 실행 됩니다") 
		elem = -1 
	finally: 
		print("이 문장은 exception 발생 여부와 상관없이 무조건 실행됩니다!") 

	return elem 
Exceptionでは、複数の例外をキャプチャできます.
前に見たコードのように特定の例外を指定したり、Exceptionのようにすべての例外を指定したりすることができます.
except IndexError: 
	print(f"이 문장은 Exception이 발생하면 실행 됩니다") 
	elem = -1 
except Exception: 
	print(f"IndexError가 아닌 다른 종류의 Exception이 발생했습니다") 
	elem = -1
この方法で具体的に指定できます!!
try:
    (예외가 일어날 것 같은 코드, 즉 위험한 코드)
except:
    (예외가 있을 때 실행될 코드)
else:
    (예외가 없을 때 실행될 코드)
finally:
    (예외와 상관없이 무조건 실행될 코드)