HeYStRanGeR
article thumbnail
Published 2021. 1. 15. 16:27
[Python] 파이썬 예외처리 Coding/Python

(2021.01.15)

 

예외처리도 야악~~간 좀 어려웠다... 

이런 기능이 있는 언어를 처음 접해봐서 그런것 같다.

 

예외 라는 단어가 들어있어서 헷갈리는데 그냥 오류처리=예외처리 느낌이다.

 

book.naver.com/bookdb/book_detail.nhn?bid=15052904

 

Do it! 점프 투 파이썬

파이썬 4년 연속 베스트셀러 1위!《DO IT! 점프 투 파이썬》 전면 개정판 출시!문과생도 중고등학생도 직장인도 프로그래밍에 눈뜨게 만든 바로 그 책이 전면 개정판으로 새로 태어났다! 2016년 《D

book.naver.com

참고도서: 점프투파이썬


 

오류 예외 처리 기법

 

 

ZeroDivisionError 오류

 

IndexError 오류

 

이렇게 발생하는 오류를 유연하게 처리하는 기법이 있다.

 

 

 

try, except 문

 

try:
  ...
except [발생 오류[as 오류 베시지 변수]]:
  ...

try 블록 수행 중에 오류가 발생하면, except 블록이 수행된다.

오류가 발생하지 않으면, except 블록은 수행되지않는다.

 

 

 

except 구문은 3가지의 방법으로 이용할 수 있다.

 

 

1. try와 except 만 사용하기

try:
  ...
except:
  ...

이때는 오류 종류에 상관없이 오류가 발생하기만 하면 except 블록을 수행한다.

 

 

2. 발생 오류만 포함한 except 문 사용하기

try:
  ...
except 발생오류:
  ...

이때는 except 문에 적은 오류가 발생할 때만 except 블록을 수행한다.

 

 

3. 발생오류와 오류메시지 변수까지 포함한 except문

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

이때는 except 문에 적은 오류가 발생할 때, 그 오류 메시지의 내용까지 알고 싶은 경우에 사용한다.

 

 

try except 문 예시

 

 

try finally 문

 

finally 는 try 문 수행 도중에 예외발생여부에 상관없이 항상 수행된다. 

주고 finally 절에는 close함수가 많이 이용된다.

 

 

try finally 예시

 

 

여러개의 오류 처리하기
try:
  ...
except 발생오류 1:
  ...
except 발생오류 2:
  ...

이렇게 되면 먼저 발생한 오류에 해당하는 except 문만 수행된다.

 

 

try:
  ...
except (발생오류1, 발생오류2, ...) :
  ...

이렇게 ( ) 괄호 안에 발생오류를 넣으면, 2개 이상의 오류를 동시에 처리할 수 있다.

 

 


오류 회피하기

 

오류를 그냥 통과 시키고 싶을 때에는 except 문에  pass  를 써주면 된다.

 

오류 회피 예시

 


오류 발생시키기

 

파이썬에서는  raise  명령어를 이용해서 오류를 강제로 발생시킬 수 있다.

 

 

오류 발생시키기 예시

 

 

NotImplementedError 는 파이썬 내장 오류이다.

--> 작성해야하는 부분이 없을 때 일부러 오류를 일으키기 위해 쓰인다.

 


예외 만들기

 

 

--> Exception 은 파이썬 내장 클래스이다.

 

 

 

 

위처럼 예외를 만들고, 그 예외에 오류 메시지를 넣어 출력하고 싶다면

 

 

 

__str__메서드를 구현해주어야한다.

이는 오류메시지를 print 문으로 출력할 때 호출되는 메서드이다.

 

 

 

 

 

 

 

 

 

 

 

 

728x90

'Coding > Python' 카테고리의 다른 글

[Programmers] LV.1 이상한 문자 만들기 (python)  (0) 2023.04.19
[Python] 3과 5의 배수 합하기  (0) 2021.01.18
[Python] 파이썬 - 패키지  (0) 2021.01.15
[Python] 인터프리터 종료  (0) 2021.01.15
[Python] 파이썬 - 모듈  (0) 2021.01.15
profile

HeYStRanGeR

@HeYStRanGeR

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!