파이썬 예외 발생(raise), 오류 종류 커스텀
안녕하세요.
이번 글에서는 raise를 통해서 예외를 직접 발생시키는 방법과
새로운 오류 종류를 커스터마이징하는 방법에 대해서
간단히 다루어보도록 하겠습니다.
raise로 에러 발생시키기 예제 : 기본형
raise라는 명령어를 코드에 사용하면, 원하는 코드 부분에서
에러를 발생시킬 수 있습니다.
다음 if 문에서 raise를 사용한 오류 발생 예제입니다.
for i in range(10):
print("i = %d"%i)
if i == 4:
raise
i = 4인 경우 raise 명령어를 만나게 했더니,
런타임 에러 메시지가 위처럼 나타났습니다.
raise로 원하는 종류의 에러 발생
이번에는 특정 종류의 에러를 발생시켜보도록 하겠습니다.
이 경우는 raise 뒤에 원하는 종류의 오류를 작성해주시면 되는데요.
내장된 오류 종류도 가능하고, 뒤에서 다룰 커스텀한 오류 종류도 상관없습니다.
for i in range(10):
print("i = %d"%i)
if i == 4:
raise KeyError
KeyError로 오류 종류를 지정해본 결과, 원하는 Error 종류가
잘 발생된 것을 확인하였습니다.
다만, 에러의 메시지를 알 수 있다면 고쳐야할 에러 종류가 무엇인지
감이 오기 쉽겠지요? 메시지를 넣는 방법은 Error종류(메시지) 형태로
오류를 선언해주면 됩니다.
for i in range(10):
print("i = %d"%i)
if i == 4:
raise KeyError("i = 4는 불가능합니다.")
'i = 4는 불가능합니다.' 라는 메시지가 잘 출력된 것을 확인해보았습니다.
새로운 에러 종류 만들기
때로는 원하는 새로운 종류의 에러를 만들고 싶을 수 있습니다.
새로운 종류의 오류를 만들 경우, 오류의 종류를 쉽게 파악 가능하기도 하고,
try ~ except 구문에서 원하는 종류의 코드 발생 여부도 체크하기 용이합니다.
오류를 선언하는 예시는 매우 간단합니다. Exception class를 상속받는 원리로
새로운 오류 종류를 커스텀할 수 있는데요. 예시 코드는 다음과 같습니다.
class FourError(Exception):
def __init__(self):
super().__init__('i = 4는 불가능합니다.')
예를 들어, FourError라는 이름을 가진 오류를 선언하고,
오류 발생 시에는 'i = 4는 불가능합니다.' 라는 메시지를 출력하게 만들어보았습니다.
오류 이름과 출력메시지는 위의 형식에서 자유롭게 바꿔주셔도 좋습니다.
새로 만든 에러를 raise를 이용하여 발생시켜보겠습니다.
for i in range(10):
print("i = %d"%i)
if i == 4:
raise FourError
새로 만든 예외인 FourError가 잘 출력된 것을 확인해보았습니다.
'Python > 파이썬 기초' 카테고리의 다른 글
파이썬 클래스 상속(오버로딩), super().__init__() 의미 (0) | 2021.12.30 |
---|---|
py 파일 import 방법, if __name__ == '__main__' 의미, Colab에서 py 파일 가져오기 (0) | 2021.12.21 |
파이썬 문자열 대표 함수 총정리, 코드 예시 (0) | 2021.12.14 |