[python] 예외처리

전상욱·2021년 4월 21일
0

Python

목록 보기
13/14

exception란 코드를 실행하는 중에 발생한 에러를 뜻함.

try:
	실행코드
exception:
	예외가 발생핼을 때 처리하는 코드
try:
    x = int(input())
    y = 10 / x
    print(y)

except:
    print('error')

0
error

특정 에러 처리

try:
	실행할 코드
exept 예외이름:
	예외가 발생핼을 때 처리하는 코드
y = [10,20,30]
try:
    index, x = map(int, input().split())
    print(y[index] / x)

except ZeroDivisionError:
    print('숫자를 0으로 나눌 수 없습니다')
except IndexError:
    print('index error')

0 0
숫자를 0으로 나눌 수 없습니다 
3 0
index error

예외의 에러 메시지 받아오기

try:
	실행할 코드
except 예외 as 변수:
	예외가 발생했을 때 처리하는 코드
  • 모든 예외의 에러 메시지를 출력하고 싶다면 다음과 같이 except에 Exception을 지정하고 as 뒤에 변수를 넣으면 된다.
except Exception as e:
	print('error', e)

else and finally

try:
	실행할 코드 
exception:
	예외가 발생했을 때 처리하는 코드 
else:
	예외가 발생하지 않았을 때 실행하는 코드
finally:
	예외 발생 여부와 상관없이 항상 실행할 코드

예외를 발생시켜봅시다.

  • raise 예외('에러메세지')
def func():
    x = int(input('3의 배수를 입력하시오'))
    if x % 3 != 0:
        raise Exception('3배수가 아닙니다')
    print(x)

try:
	func()
except Exception as e :
	print('예외가 발생했습니다.', e)

함수안에서 try except가 없는 상태에서 raise로 예외를 발생시켰다. 이렇게 되면 바깥에 있는 except에서 예외처리 된다. 예외가 발생하더라도 현재 코드 블록에서 처리해줄 except가 없다면 except가 나올때까지 진행. 만약에 없다면? 에러표시가 난다.

예외를 자체적으로 만들어보기

class 예외이름(Exception):
	def __init__(self):
    	super().__init__('에러메세지')
profile
someone's opinion of you does not have to become your reality

0개의 댓글