Python - 예외

이호현·2020년 7월 4일
0

Python

목록 보기
8/10

1. 예외

예외 처리 형식

try:
	# 실행해야 될 부분
except:
	# 에러가 났을 때 처리할 부분

# 예제
try:
    num = int(input('숫자를 입력하세요 : '))
    print(num)
except:
    print('에러 발생')

# > 숫자를 입력하세요 : hello
# > 에러 발생
try:
	# 실행해야 될 부분
except 에러타입:
	# 어떤한 타입의 에러가 났을 때 처리할 부분

# 예제
try:
    num = int(input('숫자를 입력하세요 : '))
    print(num)
except ValueError:
    print('숫자만 입력 가능합니다!!')
try:
	# 실행해야 될 부분
except Exception as error:
	print(error)
	# 에러 내용을 error로 받아서 출력

# 예제
try:
    num = int(input('숫자를 입력하세요 : '))
    print(num)
except Exception as error:
    print(error)

# > 숫자를 입력하세요 : hello
# > invalid literal for int() with base 10: 'hello'

2. 예외 처리

에러 발생시키기

-raise를 사용해서 에러를 강제로 발생시킬수 있음

try:
    num = int(input('자연수를 입력하세요 : '))
    if num <= 0:
        raise ValueError
except Exception:
    print('에러 발생!!')

# > 자연수를 입력하세요 : -1
# > 에러 발생!!

에러 내용 사용자 정의

-에러 내용을 사용자가 만들어서 사용할 수 있음

class OnlyOddNum(Exception):
    pass
try:
    num = int(input('홀수만 입력하세요 : '))
    if num % 2 == 0:
        raise OnlyOddNum
    print(num)
except OnlyOddNum:
    print('짝수는 입력하시면 안되요!!')

# > 홀수만 입력하세요 : 2
# > 짝수는 입력하시면 안되요!!

에러에 대한 메세지도 출력되게 할 수 있음

class OnlyOddNum(Exception):
    def __init__(self, message):
        self.message = message
    def __str__(self):
        return self.message
try:
    num = int(input('홀수만 입력하세요 : '))
    if num % 2 == 0:
        raise OnlyOddNum('{0}은/는 홀수가 아닙니다'.format(num))
    print(num)
except OnlyOddNum as error:
    print('짝수는 입력하시면 안되요!!')
    print(error)

# > 홀수만 입력하세요 : 4
# > 짝수는 입력하시면 안되요!!
# > 4은/는 홀수가 아닙니다

finall

-에러 발생에 관계없이 무조건 다음으로 처리하는 부분

try:
    num = int(input('숫자만 입력하세요 : '))
    print(num)
except:
    print('숫자만 입력해주세요!!')
finally:
    print('종료하겠습니다')

# > 숫자만 입력하세요 : 1
# > 1
# > 종료하겠습니다

# > 숫자만 입력하세요 : hello
# > 숫자만 입력해주세요!!
# > 종료하겠습니다
profile
평생 개발자로 살고싶습니다

0개의 댓글