본문 바로가기
개발&코딩/Python

[Python] - 예외처리문 try,except,finally

by 우동이 2020. 9. 9.
300x250

try,except문은 예외처리의 기능을 담당한다

try문에 수행할 구문들을 넣어두고 그 외에 발생한 error와 예외경우들은

except문에서 걸러진다.

try,except문 구조

try:
    a=int(input("a의 값을 입력하시오 >> "))
    print(a)
except:
    print("다른 값이 입력되었습니다")

>>> 3
3

>>> anything
다른 값이 입력되었습니다

 

위는 try문을 이용해 기본적인 구조를 짜보았다

try문의 수행문은 무조건 실행이 되는데 int형 값을 변수 a에 받아 출력하는 프로그램이다

만약 a에 int형이 아닌 다른 형태의 값이 입력 되면 error가 발생하는데 그 error 발생시 

나오는 error message를 except에서 내가 지정해줄 수 있다.

 

3을 입력했을 때에는 정상적인 입력이 진행되었기 때문에 error 가 발생하지 않았지만

anything이라는 문자열 값이 입력되자 지정해둔 error message가 출력되었다.

 

 

try문 예외 지정

try:
    a=int(input("a의 값을 입력하시오 >> "))
    print(a)
except ValueError:
    print("raise ValueError")

>>> 3
3
>>> what?
raise ValueError

except문 자체는 모든 error와 예외사항을 잡아내는 기능이 있지만

프로그램을 작성하다 보면 특정 error의 메시지를 따로 설정하는 기능도 존재한다

위의 경우에는 잘못된 값이 입력될 떄 발생하는 ValueError의 경우에 출력될 error message를 

내가 따로 지정해주었다

 

int형 값이 입력될때는 정상 진행 되지만

what?이라는 문자열 값이 입력되자 프로그램 작성자가 지정한 message가 출력되었다.

 

try문 예외 지정-2

try:
    a=int(input("a의 값을 입력하시오 >> "))
    print(a)
except ValueError as v:
    print(v)

>>> 3
3
>>> what?
invalid literal for int() with base 10: 'what?'

특정 error메시지를 작성하는데 더 편리한 기능이 있다

ValueError에 대해 발생하는 기본 error message를 v로 지정한 후 그대로 출력하면

기본 error message가 출력된다

try문 finally

try:
    f=open("c:\\test\\test.txt","r")
except:
    pass
finally:
    f.close()

파일은 open 되면 무조건 close가 되어야 하는 구조다

위 코드에 finally는 마지막에 무조건 실행되는 기능인데

수행문으로 close()를 넣어주면 프로그램의 끝에 무조건 파일이 닫히도록 할 수 있다

 

300x250

댓글