본문 바로가기

카테고리 없음

[Python][파이썬]예외 처리

~ 목차 ~

프로그램을 만들다 보면 수없이 많은 오류를 만나게 된다.

자바에서는 오류 발생 시 대처하는 try-catch를 사용했는데 파이썬에서는 어떻게 사용하는지 방법을 알아 보았다.

 

 

예외처리

  • 오류를 처리 할 수 있게끔 지원 한다.
  • 프로그램의 정상적인 흐름 → 예외발생 → 예외처리 (프로그램의 실행을 계속 할 수 있는 다른 경로를 제공한다.)
  • try: 실행문1, 실행문2 ...
    except 발생오류 as 오류변수: 에러가 났을 때에 실행 할 실행문
  • 에러 종류 
    • IOError : 파일을 열 수 없을때 발생
    • ImportError : 파이썬 모듈을 찾을 수 없을때 발생
    • ValueError : 연산이나 내장함수에서 인수가 적절치 않은 값을 가지고 있을때 발생
    • KeyboardInterrupt : 사용자가 인터럽트키 누르면 발생 (delete, ctrl+c)
    • EOError : 내장 함수가 파일의 끝을 만나면 발생

 

예외처리 코드

 

1. 오류 발생

10/0

결과

ZeroDivisionError: division by zero

 

 

2. 예외처리

try:
    a = 10 / 0
except ZeroDivisionError as e:
    print(e)

결과

division by zero

 

 

3. 인덱스 오류 예외처리

a = [1, 2, 3, 4, 5]
b = 2
try:
    print(a.index(b))
except:
    print('인덱스 오류')

결과

1

a = [1, 2, 3, 4, 5]
b = 6
try:
    print(a.index(b))
except:
    print('인덱스 오류')

결과

인덱스 오류

 

 

4. 오류종류 모를 때 예외처리(최상위인 Exception 사용), 오류가 나더라도 반드시 실행해야하는 것 : finally사용!! 

try:
    print(a.index(b))
except Exception as e:
    print('인덱스 오류')
else:
    print('오류가 없으면 실행')
finally:
    print('오류가 나더라도 꼭! 실행')

결과

인덱스 오류
오류가 나더라도 꼭! 실행

728x90