본문 바로가기

공부/코딩공부

파이썬 예외처리

패키지란 ('.')를 이용하여 파이썬 모듈을 계층적으로 관리할 수 있게 해준다.

EX) A.B >>A는 패키지명, B는 A패키지의 B모듈

 

예외처리 (Exception Handling)

오류가 나도 무시하고 싶거나, 그에 맞는 처리를 하고 싶을 때 try, except를 사용해서 예외적으로 오류를 처리할 수 있다.

오류가 일어나는 경우

  1. 없는 자원 참조
  2. 불가능한 산술 연산
  3. 리스트 범위 오류 등

 

FileNotFoundError: No such file or directory

 >> 없는 파일을 열려고 시도 했을때 발생하는 에러

 

ZeroDivisionError : division by zero

>>0으로 나누려 할때 발생하는 에러

 

IndexError : list index out of range

>>리스트 범위를 벗어날때 발생하는 에러

 

ImportError >> import 문장이 읽으려는 모듈 정의가 없을 때 발생하는 에러

keyError >>없는 딕셔너리 키가 사용되었을 때 발생하는 에러

NameError >> 변수나 함수 이름 등 글로벌/로컬 이름이 없을 때 발생하는 에러

TypeError >> 연산자나 함수가 적절하지 않은 자료형 객체에 적용되었을 때 발생하는 에러

 

try, except 문의 구조

더보기

try :

      ~~~

except :

      ~~

오류 종류에 상관없이 오류 발생시 except 문 실행

 

더보기

try :

      ~~~

except 발생오류 :

      ~~

발생 한 오류가 except문에 미리 정해놓은 오류와 일치할때 except문 실행

더보기

try :

      ~~~

except 발생오류 as 오류메시지변수:

      ~~

      print(e)

 

발생 한 오류의 오류 메시지 까지 알 고 싶을땐 위처럼 하면 된다. 오류 메시지변수는 ( = e)

print(e)했을때, 오류 메시지가 제출

 

 

오류 회피하기

try:

except FileNotFoundError:

       pass //pass 사용하여 오류를 회피

 

오류를 일부로 발생하기

raise 명령어 사용

 

 

예외 만들기

특수 경우 Exception클래스를 상속받아 예외처리를 위한 코드를 만들어 사용가능하다

class MyError(Exception):

     pass

 

근데 이렇게 하면 오류메시지 출력 안된다.

class MyError(Exception):

     def __str__(self):

          return "블라블라블라"

 

처럼 해야 가능하다,

 

오류메시지를 사용하고 싶을땐

except MyError as e:

   print(e)

 

'공부 > 코딩공부' 카테고리의 다른 글

알고리즘 최대값 구하기 python  (0) 2021.11.24
[c언어] 백준 최대공약수 하나 빼기  (0) 2021.08.18
파이썬 모듈  (0) 2021.05.22
파이썬 클래스  (0) 2021.05.17