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'
-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은/는 홀수가 아닙니다
-에러 발생에 관계없이 무조건 다음으로 처리하는 부분
try: num = int(input('숫자만 입력하세요 : ')) print(num) except: print('숫자만 입력해주세요!!') finally: print('종료하겠습니다') # > 숫자만 입력하세요 : 1 # > 1 # > 종료하겠습니다 # > 숫자만 입력하세요 : hello # > 숫자만 입력해주세요!! # > 종료하겠습니다