파이썬(Python)-예외처리
파일에 쓸 수 없을 때 프로그램은 예외를 던집니다.
오류가 생기면 어떻게 되나요 ? 어떤 오류들은 정말 치명적입니다.
대부분의 프로그래밍 언어들은 이런 일이 생겼을 때 예외(exception)를 던지기(throw) 때문에 여러분의 코드에서 이런 상황을 알아챌 수 있습니다.
파이썬은 명령이 실패했을 때를 포착하면 그 뒤의 코드를 수행하는 대신 비행기를 버리고 코드 실행에서 탈출합니다, 예외를 던진다는 말의 의미는 이런 것입니다, 프로그램이 크래시되는 것이 아니라 코드가 실행하려던 것을 버리고 상황을 복구하려고 시도하는 것입니다.
예외 잡기
예외가 던져지면 파이썬은 이것을 알게되며, 여러분은 예외가 발생했을 때 처리하는 코드를 만들 수 있습니다. 이런 과정을 예외를 잡는다(catch)라고 합니다.
예외가 발생했을 때 실행하는 코드를 예외 처리기(exception handler)라고 합니다.
try/ except로 예외 감시하기
오류가 발생했을 때 복구하기 위해서는 코드에서 예외를 던지도록 만들어야 합니다.
파이썬에서는 try와 except 키워드를 사용해서 이러한 일을 합니다.
try/ except 블록이 함수 코드 전체를 에워싸고 있다는 것에 유의하세요.
만약 deliverise.txt. 파일을 열다가 문제가 생겼다면 파일에 쓰는 것 자체가 수행되지 않기를 원할 것입니다.
따라서 문제가 생기면 비행기를 버리고 문제를 해결하려고 하는 코드로 넘어가야 합니다.
이제 예외 처리기 코드가 실행됩니다.
오류가 생기면 어떻게 되나요 ? 어떤 오류들은 정말 치명적입니다.
대부분의 프로그래밍 언어들은 이런 일이 생겼을 때 예외(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) // 이 코드 전부를 건너 뜁니다.
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) // 예외 처리기 표시를 사용하여 이 코드 전체를 에워싸야합니다.
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) // 여기에는 예외처리기 코드가 들어 갑니다.
app.title("Can't write to the file %s" %ex) // 여기에는 예외처리기 코드가 들어 갑니다.
try/ except 블록이 함수 코드 전체를 에워싸고 있다는 것에 유의하세요.
만약 deliverise.txt. 파일을 열다가 문제가 생겼다면 파일에 쓰는 것 자체가 수행되지 않기를 원할 것입니다.
따라서 문제가 생기면 비행기를 버리고 문제를 해결하려고 하는 코드로 넘어가야 합니다.
이제 예외 처리기 코드가 실행됩니다.
'' 카테고리의 다른 글
파이썬(Pyhon) - 설치하기 & 다운로드 (0) | 2011.11.30 |
---|---|
파이썬(Python)- 메시지 상자 (0) | 2011.11.29 |
파이썬(Python)-예외처리 (0) | 2011.11.28 |
파이썬(Python) - GUI에서 옵션메뉴(드롭다운 리스트 상자)만들기 (0) | 2011.11.14 |
파이썬(python) - GUI에서 라디오 버튼 사용하기 (0) | 2011.11.10 |
파이썬(Python) - 데이터 입력 위젯 코드 (1) | 2011.11.07 |
댓글을 달아 주세요