Python/파일 입출력

python 예외처리 (try ~ except)

Yonggyu 2023. 9. 26. 10:52
반응형

 

예외처리 (try ~ except)

프로그램 처리 도중 에러가 발생하였을때 예외처리를 하지않으면 그대로 에러가 발생하며 해당 라인에서 정지된다. 
하지만 에러가 발생하더라도 프로그램을 강제종료하지않고 해당 에러에 대한 조치를 하면서 프로그램을 실행하도록 하는것이 예외처리이다.

 

형식

try:
    예외가 발생할 수 있는 code


except 예외클래스명[as 변수]:
    try문 안에서 예외가 발생한 경우 처리하는 code


else:
    try문 안에서 예외가 발생하지 않는 경우 처리하는 code


finally:
    try  블록에서 예외가 발생하든 안하든 무조건 실행하는 code

 

 

ZeroDivisionError

try:
    s=0
    5/s
except ZeroDivisionError as err:
    print('에러는',err)

finally:
    print("무조건 실행")

"""결과
에러는 division by zero
무조건 실행
"""

여기서 5를 0으로 나누려다 ZeroDivisionError가 발생한다.

이때 except 문이 실행되면서 변수 err에 메세지가 기억되고 print로 출력된다.
그 뒤에 항상 수행되는 finally문이 실행되며 '무조건 실행'이 출력된다.

 

 

try:
    s=0
    #5/s  -> 실행시 ZeroDivisionError 발생
    
    aa=[1,2]
    #aa[3]   -> 실행시 IndexError 발생
    
    f= open('e.txt')   # Exception 발생
    
except ZeroDivisionError as err:
    print('에러는',err)
except IndexError as err:
    print('참조 범위 오류',err)
except Exception as err:
    print('에러 발생', err)
    
finally:
    print("무조건 실행")

"""결과    
에러 발생 [Errno 2] No such file or directory: 'e.txt'
무조건 실행
"""

사실 f= open('e.txt')는 FileNotFoundError이지만 Exception은 다양한 에러를 처리하는 기본적인 예외처리문이다.
주의할점은 Exception 클래스는 다른 예외 클래스의 부모클래스이기 때문에 가장 마지막에 적어주어야 정확한 예외처리가 가능하다.

 

728x90
반응형