Hi Hi

'파이썬 예외 잡기'에 해당되는 글 1건

  1. 파이썬(Python)-예외처리

파이썬(Python)-예외처리

 

파일에 쓸 수 없을 때 프로그램은 예외를 던집니다.
오류가 생기면 어떻게 되나요 ?  어떤 오류들은 정말 치명적입니다.

대부분의 프로그래밍 언어들은 이런 일이 생겼을 때 예외(exception)던지기(throw) 때문에 여러분의 코드에서 이런 상황을 알아챌 수 있습니다.

파이썬은 명령이 실패했을 때를 포착하면 그 뒤의 코드를 수행하는 대신 비행기를 버리고 코드 실행에서 탈출합니다, 예외를 던진다는 말의 의미는 이런 것입니다, 프로그램이 크래시되는 것이 아니라 코드가 실행하려던 것을 버리고 상황을 복구하려고 시도하는 것입니다.

def save_data():
    fileD = open("deliverise", "a")  // 이 코드 때문에 예외를 던지게 됩니다.
    fileD.write("Depot:\n")
    fileD.write("%s\n"%depot.get())
    depot.set("")
    description.delete(0, END)
    address.delete("1.0", END) // 이 코드 전부를 건너 뜁니다.



예외 잡기
예외가 던져지면 파이썬은 이것을 알게되며, 여러분은 예외가 발생했을 때 처리하는 코드를 만들 수 있습니다. 이런 과정을 예외를 잡는다(catch)라고 합니다.
예외가 발생했을 때 실행하는 코드를 예외 처리기(exception handler)라고 합니다.

try/ except로 예외 감시하기
오류가 발생했을 때 복구하기 위해서는 코드에서 예외를 던지도록 만들어야 합니다.
파이썬에서는 try와 except 키워드를 사용해서 이러한 일을 합니다.


def save_data():
    try: // try 문장 하위에 들어가도록 들여 써야합니다.
        fileD = open("deliverise", "a")
        fileD.write("Depot:\n")
        fileD.write("%s\n"%depot.get())
        depot.set("")
        description.delete(0, END)
        address.delete("1.0", END) // 예외 처리기 표시를 사용하여 이 코드 전체를 에워싸야합니다.
    except Exception as ex: // 처리기 내부에서 예외는 ex라는 변수에 할당됩니다.
        app.title("Can't write to the file %s" %ex) // 여기에는 예외처리기 코드가 들어 갑니다.


try/ except 블록이 함수 코드 전체를 에워싸고 있다는 것에 유의하세요.
만약 deliverise.txt. 파일을 열다가 문제가 생겼다면 파일에 쓰는 것 자체가 수행되지 않기를 원할 것입니다.
따라서 문제가 생기면 비행기를 버리고 문제를 해결하려고 하는 코드로 넘어가야 합니다.

이제 예외 처리기 코드가 실행됩니다.