공부/파이썬 2021. 11. 7. 15:38

20211107 점프 투 파이썬 - 05-4

05-4 예외처리

 

try :

    구문

except: 

    에러났을때 ㅋㅋ

except 에러코드 :

    특정 에러가 났을때 (ex: ZeroDivisionError 미리 지정된 에러코드)

except 에러코드 as 오류변수 :

    특정 에러가 났을때 에러코드를 오류변수로 받아서 처리

else :

    에러가 안났을 경우 처리.

finally : 

    에러가 나건 안났건 마지막에 실행할 녀석들 

    보통 파일변수 close 같은거.

 

## 에러났을 때 처리 구문에 pass 사용시 오류를 그냥 회피한다.

 

raise 에러코드

## 강제로 해당 에러를 발생

## 보통 클래스 상속에서 자식클래스가 함수등을 반드시 오버라이딩 해서 사용해야하는 경우 부모클래스쪽 함수에

## 에러 강제 발생을 만들어둔다.

 

에러 코드를 사용자 정의로 만들고 싶다면 파이썬 내장 클래스인 Exception 을 상속해서 만들면 된다.

 

class MyError(Execption):

    pass

 

def say_nick( nick ) :

    if nick == '바보' :

        raise MyError()

    print(nick)

 

try :

    say_nice( "ㅁㅁㅁ")

    say_nick("바보")

except MyError:

    print("에러났슈")

 

요러면  say_nick("바보") 이렇게 호출한 경우 MyError 라는 에러코드가 발생한다.

하지만 에러코드를 반환하는 정의를 안해놔서 아래와같이 할경우 출력되는건 없다.

 

execpt MyError as (e):

    print(e) 

 

이렇게 쓰고 싶다면

class MyError(Execption):

    def __str__(self):

        return "에러났구만유"

이렇게 정의 할것