코딩을 하다보면 예기치 못한 오류를 접하게 된다. 이러한 예외 케이스를 해결하고 오류를 수정하는데 많은 시간이 걸린다. 때로는 동일한 작업인데도 작업환경이나 상황에 따라 간혹 에러가 발생하는 경우도 있다. 반복 작업을 할 때 에러가 발생하여 다시 수행해야 한다면 그것만큼 곤욕스러운 일도 없다. 이러한 경우에 유용하게 사용할 수 있는 것이 try, except문이다.

오늘은 예외 처리를 할 수 있는 try, except문에 대해서 알아보도록 하겠다.

 

 

파이썬 try, except

 


try & except문을 사용하는 방법은 간단한다. 예외처리하고자 하는 부분을 try로 감싸주고, except문을 마지막에 붙여주면 된다. 'try안에 있는 코드를 시도해보고, 예외가 발생하면 except문을 실행하라'는 것이다. 이렇게 이해하면, 외우기도 쉽다. 필자는 보통 아래와 같이 사용한다. 예외를 규정해주고 더 잘 작성할 수도 있겠지만, 하다보면 귀찮다.

 

  try:
       ~
  except Exception as e:
     print(e)

 

except에는 예외 케이스별로 실행해야하는 구문들을 지정할 수 있지만, 이 역시 여간 피곤한 일이 아니다. 그래서 위와 같이 작성하면 모든 예외 케이스들에 대해서 밑에 print문을 수행하게 된다.

 

예외 케이스 내용
ZeroDivisionError 값을 0으로 나누려고 할 때 발생하는 에러
SystemExit 프로그램 종료하는 명령이 실행되었을 경우
KeyboardInterrupt Cotrol + C 키가 입력되었을 경우 
EOFError 읽어드릴 데이터가 없을 경우
IndexError list등에서 잘못된 인덱스로 접근할 경우 
PermissionError 명령을 실행할 권한이 없을 경우
... ...

 

 

이 외에도 여러가지 에러 케이스들이 있다. 각각의 예외들을 별도로 처리하고 싶다면, 아래와 같이 excpet문을 여러 개 작성하면 된다.

  try:
     ~
  except 예외1:
     예외일 때 실행할 코드
  except 예외2:
     예외일 때 실행할 코드

 

 

try & except문을 사용하는 경우는 많지만, 필자의 경우에는 웹크롤링을 할 때 많이 사용한다. for문으로 웹크롤링을 실행하고, 에러가 발생한 경우에도 계속 실행하고 싶기 때문이다. 에러가 발생한 경우는 확인하여, 이후에 해당 부분만 다시 실행한다.

 

  for i in range(0,100):
     try:
        웹크롤링~
     except Exception as e:
        print(e)

 

코딩

 

 

오늘은 이렇게 파이썬의 try, except문에 대해서 알아보았다. 예외처리는 코딩을 하다보면 정말 많이 사용하는 구문이 아닌가 한다. 이번 기회에 숙지하여 유용하게 사용하기 바란다. try, except외에 else와 finally도 사용할 수 있다. finally는 예외가 발생하더라도 반드시 실행하고 싶은 구문이 있으면 넣는다. 보통 파일 스트림을 닫을 필요가 있을 때 많이 넣는다.

 

필자의 블로그에는 이외에도 재미있는 파이썬 내용이 많이 있으니, 재미있게 둘러주기 바란다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">