본문 바로가기
프로그래밍/Python

[Python] 6. Python의 -예외 처리-

by iwbap 2024. 6. 18.
728x90
반응형

Python 학습: 예외 처리

예외 처리는 프로그램 실행 중 발생할 수 있는 오류를 처리하는 중요한 기능입니다. 이를 통해 프로그램이 예기치 않게 종료되는 것을 방지하고, 오류를 적절히 처리할 수 있습니다. 이번 글에서는 예외 처리 블록(try, except, finally), 예외 발생시키기(raise), 그리고 사용자 정의 예외(커스텀 예외 클래스)에 대해 알아보겠습니다.


1. try, except, finally: 예외 처리 블록

Python에서 예외 처리를 위해 try, except, finally 블록을 사용합니다. try 블록 안에 있는 코드를 실행하다가 예외가 발생하면 except 블록이 실행됩니다. finally 블록은 예외 발생 여부와 상관없이 항상 실행됩니다.

 

예외 처리 블록 예제

[python]
 
try:
    number = int(input("숫자를 입력하세요: "))
    result = 10 / number
    print(f"결과: {result}")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
except ValueError:
    print("유효한 숫자를 입력하세요.")
finally:
    print("프로그램이 종료되었습니다.")
 

위의 예제에서 try 블록은 사용자가 입력한 숫자를 정수로 변환하고, 10을 그 숫자로 나눕니다. 만약 0으로 나누려 하면 ZeroDivisionError 예외가 발생하고, 유효한 숫자가 아닌 값을 입력하면 ValueError 예외가 발생합니다. finally 블록은 예외 발생 여부와 상관없이 항상 실행되어 "프로그램이 종료되었습니다." 메시지를 출력합니다.


2. 예외 발생시키기: raise

raise 키워드를 사용하여 강제로 예외를 발생시킬 수 있습니다. 이는 특정 조건에서 예외를 명시적으로 발생시켜야 할 때 유용합니다.

 

예외 발생시키기 예제

[python]
 
def check_positive(number):
    if number < 0:
        raise ValueError("음수는 허용되지 않습니다.")
    return number

try:
    num = int(input("숫자를 입력하세요: "))
    print(check_positive(num))
except ValueError as e:
    print(e)
 

위의 예제에서 check_positive 함수는 입력된 숫자가 음수일 경우 ValueError 예외를 발생시킵니다. try 블록에서 이 함수를 호출하고, except 블록에서 예외를 처리합니다.


3. 사용자 정의 예외: 커스텀 예외 클래스

기본 제공 예외 외에도 사용자 정의 예외를 만들어 특정 상황에 대한 예외 처리를 구현할 수 있습니다. 사용자 정의 예외는 Exception 클래스를 상속받아 정의합니다.

 

커스텀 예외 클래스 예제

[python]
 
class NegativeNumberError(Exception):
    def __init__(self, message="음수는 허용되지 않습니다."):
        self.message = message
        super().__init__(self.message)

def check_positive(number):
    if number < 0:
        raise NegativeNumberError
    return number

try:
    num = int(input("숫자를 입력하세요: "))
    print(check_positive(num))
except NegativeNumberError as e:
    print(e)
except ValueError:
    print("유효한 숫자를 입력하세요.")
 

위의 예제에서 NegativeNumberError라는 사용자 정의 예외 클래스를 정의하고, check_positive 함수에서 음수가 입력될 경우 이 예외를 발생시킵니다. try 블록에서 함수를 호출하고, except 블록에서 사용자 정의 예외를 처리합니다.


이 글에서는 Python의 예외 처리에 대해 알아보았습니다. 예외 처리 블록(try, except, finally), 예외 발생시키기(raise), 사용자 정의 예외(커스텀 예외 클래스)를 이해하고 활용하면 프로그램의 안정성과 신뢰성을 높일 수 있습니다. Happy Coding!

728x90
반응형