안녕하세요! 그레이 해커 월횽입니다. 오늘은 예외 처리(Exception Handling)에 대해 알아보겠습니다. 프로그래밍을 하다 보면 오류가 발생할 수 있는데, Python에서는 이러한 오류를 예외 처리를 통해 안전하게 관리할 수 있습니다. 예외 처리를 사용하면 프로그램이 비정상 종료되지 않고 계속 실행될 수 있습니다.
1. 예외란?
예외(Exception)는 프로그램 실행 중 발생하는 오류입니다. 예외는 프로그램의 버그와는 다르며, 예를 들어 사용자가 잘못된 입력을 했을 때 발생할 수 있습니다.
예시: ZeroDivisionError
a = 10
b = 0
result = a / b # 여기서 ZeroDivisionError 발생
위 코드에서 0으로 나누기 때문에 오류가 발생합니다.
2. try-except 구조
예외 처리를 위해 try-except 구문을 사용합니다. try 블록에 오류가 발생할 가능성이 있는 코드를 작성하고, except 블록에서 오류를 처리합니다.
기본 구조
try:
실행할 코드
except 예외 종류:
예외 발생 시 실행할 코드
예시: ZeroDivisionError 처리
try:
result = 10 / 0
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
3. 여러 예외 처리하기
하나의 try 블록에서 여러 가지 예외를 처리할 수 있습니다. 각각의 except 블록에 다른 예외를 처리하도록 설정할 수 있습니다.
예시: 여러 예외 처리
try:
x = int(input("숫자를 입력하세요: "))
result = 10 / x
except ValueError:
print("숫자가 아닙니다!")
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
4. 예외 발생시키기 (raise)
raise 키워드를 사용해 강제로 예외를 발생시킬 수 있습니다.
예시: 강제로 예외 발생시키기
def check_age(age):
if age < 0:
raise ValueError("나이는 0보다 작을 수 없습니다.")
return age
try:
check_age(-1)
except ValueError as e:
print(e) # '나이는 0보다 작을 수 없습니다.' 출력
5. finally 블록
finally 블록은 예외 발생 여부에 상관없이 항상 실행됩니다. 주로 파일 닫기나 리소스 해제 같은 작업에 사용됩니다.
예시: finally 사용
try:
file = open("example.txt", "r")
content = file.read()
except FileNotFoundError:
print("파일을 찾을 수 없습니다.")
finally:
file.close() # 파일을 닫는 작업은 항상 실행됨
6. else 블록
else 블록은 예외가 발생하지 않았을 때 실행됩니다. 이를 통해 try-except 블록에서 예외가 없을 경우에만 실행될 코드를 작성할 수 있습니다.
예시: else 사용
try:
result = 10 / 2
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
else:
print("계산 결과:", result) # 예외가 없을 때만 실행됨
7. 예외 처리 정리
· try-except: 예외 발생 시 처리
· raise: 강제로 예외 발생
· finally: 항상 실행되는 코드
· else: 예외가 발생하지 않을 때 실행
다음 시간에는 객체지향 프로그래밍(Object-Oriented Programming)에 대해 배워보겠습니다!
- 이전 수업 목록
'프로그래밍 > Python' 카테고리의 다른 글
[Python 강의] 9강 - 모듈과 패키지 (1) | 2024.10.10 |
---|---|
[Python 강의] 8강 - 객체지향 프로그래밍 (Object-Oriented Programming) (0) | 2024.10.09 |
[Python 강의] 6강 - 파일 입출력 (0) | 2024.10.07 |
[Python 강의] 5강 - 데이터 구조 (리스트, 튜플, 딕셔너리, 집합) (0) | 2024.10.04 |
[Python 강의] 4강 - 함수(Function) (1) | 2024.10.03 |