Chapter 9. 예외처리
PYTHON ADVANCED
Chapter 9. 예외처리
프로그램 실행 중 발생할 수 있는 오류를 처리하는 방법에 대해 배웁니다.

9.1 예외처리란?
프로그램을 실행하다 보면 다양한 오류가 발생할 수 있습니다. 예를 들어,
- 숫자가 아닌 문자를 입력한 경우
- 0으로 나누는 경우
- 존재하지 않는 파일을 읽는 경우
이처럼 프로그램 실행 중 발생하는 오류를 예외(Exception)라고 합니다.
예외처리를 사용하면 프로그램이 갑자기 종료되지 않고 오류를 처리하면서 계속 실행할 수 있습니다.
예외처리가 필요한 이유는 예외처리를 하지 않으면 프로그램이 오류와 함께 종료되기 때문입니다.
예제 코드
num = int(input("숫자 입력 : "))
print(100 / num)
입력: 0
실행 결과
ZeroDivisionError
프로그램이 강제로 종료됩니다.
프로그램이 강제로 종료됩니다.
9.2 try 문
예외가 발생할 가능성이 있는 코드는 try 블록 안에 작성합니다.
기본 문법은 다음과 같습니다.
기본 문법
try:
실행문
except:
실행문
예제 1.
예제 코드
try:
num = int(input("숫자 입력 : "))
print(100 / num)
except:
print("오류가 발생했습니다.")
입력: 0
실행 결과
숫자 입력 : 0
오류가 발생했습니다.
프로그램이 종료되지 않고 계속 실행됩니다.
오류가 발생했습니다.
프로그램이 종료되지 않고 계속 실행됩니다.
예제 2.
예제 코드
try:
num = int(input("숫자 입력 : "))
print(num)
except:
print("숫자만 입력하세요.")
입력: abc
실행 결과
숫자 입력 : abc
숫자만 입력하세요.
숫자만 입력하세요.
9.3 except 문
except는 발생한 예외를 처리하는 부분입니다. 특정 오류만 처리할 수도 있습니다.
ZeroDivisionError
예제 코드
try:
num = int(input("숫자 입력 : "))
print(100 / num)
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
ValueError
예제 코드
try:
age = int(input("나이 입력 : "))
except ValueError:
print("숫자를 입력하세요.")
여러 개의 예외 처리
예제 코드
try:
num = int(input("숫자 입력 : "))
print(100 / num)
except ValueError:
print("숫자를 입력하세요.")
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
입력: A
실행 결과
숫자를 입력하세요.
입력: 0
실행 결과
0으로 나눌 수 없습니다.
예외 정보 출력
예제 코드
try:
num = int(input())
print(100 / num)
except Exception as e:
print("오류 발생 :", e)
입력: 0
실행 결과
오류 발생 : division by zero
9.4 finally 문
finally는 예외 발생 여부와 관계없이 반드시 실행되는 코드를 작성할 때 사용합니다. 주로 파일 닫기, 데이터베이스 연결 종료 등에 사용합니다.
기본 문법은 다음과 같습니다.
기본 문법
try:
실행문
except:
실행문
finally:
실행문
예제 1.
예제 코드
try:
print("프로그램 실행")
except:
print("오류 발생")
finally:
print("프로그램 종료")
실행 결과
프로그램 실행
프로그램 종료
프로그램 종료
예제 2.
예제 코드
try:
num = int(input("숫자 입력 : "))
print(100 / num)
except Exception:
print("오류 발생")
finally:
print("작업이 종료되었습니다.")
입력: 0
실행 결과
오류 발생
작업이 종료되었습니다.
작업이 종료되었습니다.
9.5 else 문
else는 예외가 발생하지 않았을 때만 실행됩니다.
기본 문법은 다음과 같습니다.
기본 문법
try:
실행문
except:
실행문
else:
실행문
finally:
실행문
예제
예제 코드
try:
num = int(input("숫자 입력 : "))
print(100 / num)
except Exception:
print("오류 발생")
else:
print("정상 처리되었습니다.")
finally:
print("프로그램 종료")
입력: 10
실행 결과
10.0
정상 처리되었습니다.
프로그램 종료
정상 처리되었습니다.
프로그램 종료
9.6 파일 처리와 예외처리
파일이 없는 경우 예외가 발생합니다.
예제 코드
try:
file = open("hello.txt", "r", encoding="utf-8")
print(file.read())
file.close()
except FileNotFoundError:
print("파일이 존재하지 않습니다.")
with 문과 함께 사용
예제 코드
try:
with open("hello.txt", "r", encoding="utf-8") as file:
print(file.read())
except FileNotFoundError:
print("파일을 찾을 수 없습니다.")
9.7 복합 예제
아래 코드는 사용자가 0을 입력할 때까지 숫자를 입력받아 처리하는 예제입니다.
예제 코드
while True:
try:
num = int(input("숫자 입력(0 종료) : "))
if num == 0:
break
print(100 / num)
except ValueError:
print("숫자만 입력하세요.")
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
print("프로그램 종료")
입력: abc
실행 결과
숫자만 입력하세요.
입력: 0
실행 결과
프로그램 종료
📌 Chapter 9 핵심 정리
- 예외처리는 프로그램 실행 중 발생하는 오류를 처리하는 방법이다.
- try 문을 사용하여 예외가 발생할 가능성이 있는 코드를 작성한다.
- except 문을 사용하여 발생한 예외를 처리한다.
- finally 문은 예외 발생 여부와 관계없이 실행되는 코드를 작성할 때 사용한다.
- else 문은 예외가 발생하지 않았을 때만 실행된다.
- 파일 처리 시 예외처리를 통해 파일이 존재하지 않는 경우를 처리할 수 있다.