파이썬/파이썬 자습 노트

파이썬 공부 요약 노트 4. 예외, 오류

Tomitom 2022. 10. 20. 14:32
반응형

 

● 오류의 종류 

- 구문 오류 : 문법이 잘못 되어서 실행할 수 없는 문제    -> 코드를 다시 써야 해결 된다. 

- 실행 예외 : 문법은 맞지만 논리가 잘못 되어서 실행할 수 없는 문제    -> 예외. 앞뒤로 코드를 추가해서 대응할 수 있다. (예외처리) 

- 예외 처리 : 실행 예외에 대해서 대응하는 기법

 

●기본 예외 처리

try : 예외가 발생할지도 모르는 코드 작성

except :  만약 예외가 발생하면 어떻게 할지 작성

else : 예외가 발생하지 않으면 발생하는 코드 

 

실행 예외 (예외발생) 문법은 맞는데 논리 오류임
예외가 발생하지 않았으므로
예외가 발생하지 않았을 때...

 

● except 는 각 예외 상황 별로 출력을 정할 수 있음

없는 파일을 열려고 할 때
인덱스 함수의 수보다 더 큰 인덱스를 부르려고 하면 예외가 발생합니다.

 

● try에서 예외가 발생하는 것은 반복문에서 break가 발생하는 것과 동일하게 try는 끝난다.

오류가 두 건 발생한다면 가장 위에 있는 코드의 에러 구문만 출력하고 멈춘다. 

 

 

 

예외에다가 as로 식별자를 붙이게 되면 해당 예외에 대한 객체가 부여된다. 

 

● fianally 

예외가 발생하든 안하든 마지막엔 무조건 출력하는 코드 

 

 

● raise 예외를 발생시킨다. 


age = 3
if age == 3 :
    raise NotImplementedError # 구현이 되지 않았기 때문에 예외를 발생시킨다.

Traceback (most recent call last):
  File "<pyshell#224>", line 2, in <module>
    raise NotImplementedError # 구현이 되지 않았기 때문에 예외를 발생시킨다.
NotImplementedError

 

● Exception 예외 클래스의 꼭대기

 

미리 정해져있는 예외 클래스. 

예외는 모두 클래스 형태로 정의가 되어 있다. 

이 모든 예외를 전부 다 포함하는 예외키워드 : Exception 

예외의 가장 기초적인 부분이 정의된 클래스 

다른 클래스들은 Exception 으로부터 상속된 것 

 

존재하지 않는 예외 이름을 만들고 싶다면 Exception 을 상속받아 직접 만들 수도 있음.

AgeError 를 만든다면 

Exception 으로부터 상속

Exception 에서 상속을 받아서 AgeError를 만듦.

 

 

계획한대로.. 예외 발생...

 

 

 

반응형