[python]기초문법10

1 minute read

혼자 공부하는 파이썬 43강 - finally 구문

finally 구문은 try ~ except 문에서 뒷 정리가 필요할 때 사용

try:
    #예외가 발생할 가능성이 있는 코드
except:
   # 예외가 발생했을 경우 실행할 코드
(finally:) 옵션[필요에 따라서 사용]
   #무조건적으로 실행하는 코드


예)

try:
        number = int(input(">정수 입력"))
        print("입력 값은 {}입니다".format(number))
except:
        print("예외가 발생했습니다.")
finally:
        print("무조건적으로 실행됩니다.")

finally 키워드는
함수 내부에서의 return, 반복문 내부에서의 break와 같은 키워드에 의해 실행이 종료 되더라도 실행된 후 종료된다

return이 있는 예외처리문)

test() 함수를 선언합니다
def test():
        print("test() 함수의 첫 줄입니다")
        try:
                print("try 구문이 실행되었습니다")
                return
                print("try 구문의 return 키워드 뒤입니다.")
        except:
                print("except 구문이 실행되었습니다.")
        finally:
                print("finally 구문이 실행되었습니다.")
        print("test() 함수의 마지막 줄입니다.")

#test() 함수호출
test()

#출력
test() 함수의  줄입니다
try 구문이 실행되었습니다
finally 구문이 실행되었습니다


예외객체
except 와 함께 예외의 종류와 변수를 준다
예외의 종류를 모를때는 Excpetion을 예외객체로 한다.

#함수 선언
def write_text_file(filename, text):
        try:
                file = open(filename,"w")
                return
                file.write(text)
        except Exception as e:
                print(e)
        finally:
                file.close()

write_text_file("test.txt","안녕하세요")

예외의 내용이 개발자에게 전달되어 대처할 수 있어야 하고, 예외에 따라 사용자에게 다른 메세지를 줄 수 있어야 함.

if 조건문으로 예외 구분하기
:발생할 수 있는 예외들을 except 안에서 처리해준다.

try:
	a = [273, 103, 52, 57, 100]
	number = int(input("정수 입력(0~4까지 입력해주세요)>"))
	print(a[number])
except Exception as exception:
        if type(exception) == ValueError:
                print("값에 문제가 있습니다.")
        elif type(exception) == IndexError:
                print("0~4까지를 입력해주세요.")


excep 구문으로 예외 구분하기

try:
	a = [273, 103, 52, 57, 100]
	number = int(input("정수 입력(0~4까지 입력해주세요)>"))
	print(a[number])
except ValueError as exception:
        print("값에 문제가 있습니다.")
except IndexError as exception:
        print("0~4까지를 입력해주세요.")
except Exception as exception: 
        print("알 수 없는 예외가 발생했습니다.")

except 키워드가 순서대로 실행되어서 예외가 걸러지지 않는경우,
Exception을 예외객체로 갖고있는 마지막 except의 코드가 실행된다.


raise
:예외를 강제로 발생시키는 키워드(일반적인 개발에서는 거의 쓸일이 없음)

사용방법

raise 예외객체

raise Exception("안녕하세요")
#출력:
        Exception: 안녕하세요

Leave a comment