과거의 유산들/python

예외처리

빈나 2022. 3. 18. 23:47
반응형

python에서 예외가 발생했을 때 우리가 자체적으로 처리할 수 있다.

 

기본형식

크게 try문과 except문으로 나뉘어진다.

try:
	#작성하고 싶은 코드
    
execpt ValueError:
	print("ValueError 발생했을때 적고 싶은 코드")
execpt EOFError as err:
	print(err) #원래 나와야할 메세지가 출력된다.
execpt:
	#그냥 이렇게 모든 예외들을 퉁 칠 수 있다

근데 우리가 에러를 정의할 수 있다.

class minuserror(Exception):
    def __init__(self, msg):
        self.msg = msg
    def __str__(self):    #init 에서 정의한 값을 출력하는 것
        return self.msg
        
try:
    a = int(input("양수 입력하세요: "))
    if a<0:
        raise minuserror("다시 양수 입력해주세요")
except minuserror as err:
    print(err)

그리고 에러가 발생하든 안하든 finally문은 그냥 무조오오오오오건 실행한다.

class minuserror(Exception):
    def __init__(self, msg):
        self.msg = msg
    def __str__(self):    #init 에서 정의한 값을 출력하는 것
        return self.msg
        
try:
    a = int(input("양수 입력하세요: "))
    if a<0:
        raise minuserror("다시 양수 입력해주세요")
except minuserror as err:
    print(err)
fianlly:
	print("수고하셨어요")
반응형