프로그래밍/Python

[Python 강의] 7강 - 예외 처리 (Exception Handling)

월횽 2024. 10. 8. 06:30
728x90
반응형
SMALL

안녕하세요! 그레이 해커 월횽입니다. 오늘은 예외 처리(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 블록에 다른 예외를 처리하도록 설정할 수 있습니다.

728x90

예시: 여러 예외 처리

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 블록은 예외 발생 여부에 상관없이 항상 실행됩니다. 주로 파일 닫기나 리소스 해제 같은 작업에 사용됩니다.

SMALL

예시: 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)에 대해 배워보겠습니다!

 

 

 

 

 

- 이전 수업 목록

 

 

 

 

 

728x90
반응형
LIST