예외처리

예외처리

오류가 발생하면 프로그램은 에러를 출력하며 강제종료되거나, 원하지 않는 동작을 한다.

이러한 오류를 안전하게 처리하고, 바로 강제종료 되지 않고 오류 발생 후 처리할 루틴을 실행하고자 할 때 예외처리를 사용한다.

가장 기본적인 형태

try:
		시도할 코드
except:
		에러가 발생했을 경우 실행할 코드
  • 리스트의 범위를 넘어간 에러를 테스트해본다.

여러가지 예외를 구분할 경우

try:
		시도할 코드
except <예외 클래스1>:
		에러클래스 1 해당할  실행할 코드
except <예외 클래스2>:
		...
except <예외 클래스3>:
		...
  • 리스트의 범위를 넘어간 경우, IndexError를 명시적으로 처리해본다
  • 딕셔너리의 키가 없는 경우, KeyError를 명시적으로 처리해본다

예외사항을 변수로 사용할 경우

try:
		시도할 코드
except <예외 클래스3> as <변수명>:
		<변수명> 사용한 코드
  • 위 예외에서 변수로 전달된 예외객체를 출력해본다

try ~ else

else 문은 try이후 예외가 발생하지 않을 경우 실행된다.

try:
		시도할 코드
except:
		예외 발생시 실행 코드
else:
		예외가 발생하지 않았을  실행할 코드

try ~ finally

finally문은 try이후 예외가 발생하건, 하지않건 무조건 마지막에 실행된다.

예외 발생시키기

예외를 발생시킬때는 raise구문을 사용한다.

예외 만들기

내장 클래스 Exception을 상속받아 커스텀 예외를 만들 수 있다. 초기화 메서드에서 예외에서 처리할 데이터를 받고, print문으로 사용되고 싶다면 __str__메서드를 오버라이드 해준다.

Comments