[Python] 파이썬

[Python] 예외처리 방식

ITsubin 2022. 9. 11. 22:27

예외 처리 형식은 아래와 같습니다.

try:
	코드
except:
	예외 발생 시 처리 코드

 

아래의 예시에서는 0으로 나누거나, 정수가 아닌 값을 입력한 경우에 Error를 출력합니다.

try:
	a = int(input())
	b = int(input())
	print(f'{a}/{b} = {a/b}')
except:
	print('Error')

 

위의 방식과 같은 경우, 개별적으로 예외처리가 불가능하기 때문에

아래와 같은 방법을 사용할 수 있습니다.

try:
	코드
except 에러1:
	예외 발생 시 처리 (1)
except 에러2:
	예외 발생 시 처리 (2)

( ... )

except Exception:
	예외 발생 시 처리 (n)

 

try:
	a = int(input())
	b = int(input())
	print(f'{a}/{b} = {a/b}')
except ValueError:
	print('문자를 정수로 변환할 수 없습니다')
except ZeroDivisionError:
	print('0으로 나눌 수 없습니다')
except:
	print('알 수 없는 에러')

 

 

위의 예시들에서는 print문으로 예외 메세지를 직접 출력하였습니다.

대부분의 예외는 기본적으로 예외 메세지를 가지고 있기 때문에,

아래와 같은 방식으로 as절을 추가하여 기본 메세지를 출력할 수 있습니다.

 

try:
	코드
except 예외 as 예외 메세지:
	예외 발생 시 처리

 

try:
	a = int(input())
	b = int(input())
	print(f'{a}/{b} = {a/b}')
except ValueError as error:
	print(error)
except ZeroDivisionError as error:
	print(error)
except Exception as error:
	print(error)

 

예외 처리 시 else, finally문을 사용할 수 있습니다.

( else : 예외가 발생하지 않을 경우 실행 )

( finally : 예외 발생과 상관 없이 항상 실행 )

try:
	코드
except:
	예외 발생 시 처리
else:
	예외가 없을 시 처리
finally:
	예외 발생과 상관 없이 처리

 

try:
	a = int(input())
	b = int(input())
	a/b
except ValueError:
	print('문자를 정수로 변환할 수 없습니다')
except ZeroDivisionError:
	print('0으로 나눌 수 없습니다')
except:
	print('알 수 없는 에러')
else:
	print(f'{a}/{b} = {a/b}')
finally:
	print('예외처리 실행 완료')