본문 바로가기
Python

Python 예외 처리

by 복제비 2022. 7. 3.

Python 예외 처리

 

파이썬에서 실행 도중에 발생하는 에러를 예외(exception)이라고 합니다.

일반적으로 에러가 발생하면 프로그램은 비정상적으로 종료되며 그 때까지 작업한 결과 는 잃어버리게 됩니다.

에러가 발생하는 경우 해야 할 작업에 대하여 미리 조치해 두는 것을 예외 처리라고 합니다.

 

Python 에러의 종류

에러의 종류 설명
IOError 파일을 열 수 없음
ImportError 파이썬 모듈이 없음
ValueError 연산이나 내장함수의 인수값에 문제가 있음
KeyboardInterrupt 사용자가 프로그램을 실행 중지(ctrl+c)를 누름
EOFError 내장 함수가 파일의 끝을 만남
NameError 정의되지 않은 함수명 등을 사용할때 발생함

 

Try ~ finally 문

프로그램을 실행시키면 try 블럭의 명령문이 실행됩니다.

finally 블럭의 명령문은 프로그램에 오류가 발생하든지 발생하지 않든지 항상 실행되는 문장입니다.

try 블럭의 명령문은 에러가 발생하면 실행되지 않을 수도 있지만, finally 블럭의 명령문은 프로그램이 종료되기 전에 항상 실행됩니다.

 

Try ~ finally 문의 형식
try: 
         프로그램 명령문
finally: 
         프로그램 종료전 실행할 명령문
Try ~ finally 문 예제
fp = open("c:/Test/sample.txt"'r')
try:
       sum = 0
       for  line  in  fp:
                 (count.pop) = line.split()
                 sum += pop
       print('총 합 : =  ', sum)
finally:
       fp.close()
       print('******* 프로그램 END *******')
NameError: name 'count' is not defined 가 발생함

 

Try ~ except

try 블럭은 프로그램 실행시 처리되는 명령문들로 구성되며, except 블럭은  try 블럭의 처리에서 에러가 발생하면 실행되는 명령문들로 구성됩니다.

 

Try ~ except 문의 형식
try:
                 프로그램 명령문 
except   오류 내용1: 
                 에러 발생시 실행할 명령문
except   오류 내용2: 
                 에러 발생시 실행할 명령문
except   오류 내용3:
                 에러 발생시 실행할 명령문
                  . . . . . . . . 
                  . . . . . . . . 
Try ~ except 문 예제
a = int(input('정수1 ? =  '))
b = int(input('정수2 ? =  '))
try:
       result = a/b
       print('결과 =  ', result)
except  ZeroDivisionError  as  e:
       print(e)
       print('에러가 발생했습니다 !!!')
<실행 결과>

정수1 ? = 77

정수2 ? = 0
division by zero
에러가 발생했습니다 !!!

 

'Python' 카테고리의 다른 글

Python의 객체 지향  (0) 2022.07.04
Python 파일 입출력  (0) 2022.07.02
Python 사전(dictionary) 자료형  (0) 2022.07.01
Python 집합(set)  (0) 2022.06.30
Python 튜플  (0) 2022.06.29

댓글