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 "에러났구만유"
이렇게 정의 할것