컴퓨터잡담

파이썬의 IF문 사용시 실행값에서 오류발생시 진행하는 예외처리 방법

by nanumi posted Jun 15, 2021
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

파이썬의 IF문 사용시 실행값에서 오류발생시 진행하는 예외처리 방법

 

 

 

 

try
    line = f.readlines()[0]
except:
    line=""
    print('신규문서로 읽어올 자료가 없습니다.')

 

f.readlines()의 변수 배열 0번에 해당하는 값이 없을 경우 

IndexError: list index out of range

 

오류를 발생시키면서 스크립트가 종료되지만 위의 소스는 try에서 오류 발생시 except를 실행시켜서 강제로 line 변수에 공백데이터를 입력한다.

 

파이썬 예외처리 코드 기본구조

try:

    (예외가 일어날 것 같은 코드, 즉 위험한 코드)

except:

    (예외가 있을 때 실행될 코드)

else:

    (예외가 없을 때 실행될 코드)

finally:

    (예외와 상관없이 무조건 실행될 코드)

 

try:
    print('##### 예외가 있을 때 #####')
    number = 3 / 0 # 0으로 나누면 ZeroDivisionError 예외가 발생
    print('다음 코드들...')
except:
    print('except 블록')
else:
    print('else 블록')
finally:
    print('finally 블록')

print()

try:
    print('##### 예외가 없을 때 #####')
    number = 3 / 3
    print('다음 코드들...')
except:
    print('except 블록')
else:
    print('else 블록')
finally:
    print('finally 블록')

파이썬 예외처리 코드 기본구조

try 블록에 있는 코드를 실행하다 예외를 만나게 되면 except 블록으로 직행

예외가 있을 때를 except 블록을, 없을 때는 else 블록을 실행한다.

finally 블록은 예외가 있으나 없으나 실행된다.

(위의 코드를 보면 언제 어느 블록이 실행되는지 한눈에 파악할 수 있습니다.)

 

여러가지 예외(Exception) 처리하기

L = [1, 2, 3]
try:
    #주석을 풀어가면서 하나씩 테스트
    #print(abc) # NameError 발생
    #print(L[7]) # IndexError 발생
    #number = 3 / 0 # ZeroDivisionError 발생
    int('abc') # ValueError 발생
except NameError:
    print('NameError')
except IndexError:
    print('IndexError')
except ZeroDivisionError:
    print('ZeroDivisionError')
except:
    print('모르는 에러!')

여러가지 예외(Exception) 처리하기

예외 종류별로 except문을 사용하여 세밀한 처리를 할 수 있다.

위에서부터 순서대로 예외를 처리하기 때문에 순서가 중요하다.

마지막에 모든 예외를 처리하기 위해서는 except: 또는 except Exception: 을 사용한다.

 

예외의 종류는 아래의 링크를 참고한다.

https://docs.python.org/3/library/exceptions.html#