IT프로그램 언어/python

Python(예외처리)

필립곽 2025. 1. 22. 14:33
반응형

이번 포스팅에서는 파이썬의 예외처리(Exception Handling)에 대해 알아보겠습니다. 예외처리는 프로그램이 실행 중에 발생할 수 있는 오류를 처리하는 방법으로, 프로그램이 중단되지 않도록 도와줍니다. 이를 통해 더 견고하고 신뢰성 있는 코드를 작성할 수 있습니다.

 

1. 예외란 무엇인가?

프로그래밍에서 예외는 코드 실행 중에 발생하는 오류를 의미합니다. 예외가 발생하면 프로그램은 정상적으로 실행되지 않으며, 이때 사용자에게 유용한 피드백을 제공하거나 대체 로직을 실행할 수 있도록 해야 합니다.

 

2. 예외처리의 필요성

예외처리는 다음과 같은 이유로 필요합니다:

-프로그램의 비정상 종료 방지
-사용자에게 오류에 대한 정보 제공
-코드의 가독성 및 유지보수성 향상

 

3. 예외처리 구문

파이썬에서 예외처리를 위해 사용하는 구문은 try, except, finally, else입니다. 각각의 역할은 다음과 같습니다:

-try: 예외가 발생할 가능성이 있는 코드를 작성합니다.
-except: 예외가 발생했을 때 실행될 코드를 작성합니다.
-finally: 예외 발생 여부와 관계없이 항상 실행되는 코드를 작성합니다.
-else: 예외가 발생하지 않았을 때 실행될 코드를 작성합니다.

 

4. 예외처리 예제

다음은 예외처리를 사용하는 간단한 예제입니다. 두 수를 나누는 프로그램을 작성해보겠습니다.

[예제]
def divide_numbers(num1, num2):
    try:
        result = num1 / num2
    except ZeroDivisionError:
        return "0으로 나눌 수 없습니다!"
    except TypeError:
        return "숫자만 입력 가능합니다!"
    else:
        return f"결과: {result}"
    finally:
        print("프로그램이 종료되었습니다.")

# 예제 실행
print(divide_numbers(10, 2))  # 결과: 5.0
print(divide_numbers(10, 0))  # 0으로 나눌 수 없습니다!
print(divide_numbers(10, 'a'))  # 숫자만 입력 가능합니다!


[설명]
-try 블록: num1을 num2로 나누는 코드를 작성했습니다. 이 부분에서 오류가 발생할 수 있습니다.
-except 블록: 두 가지 예외를 처리했습니다.
-ZeroDivisionError: 0으로 나누려고 할 때 발생합니다.
-TypeError: 숫자가 아닌 값을 입력할 때 발생합니다.
-else 블록: 예외가 발생하지 않았을 경우 결과를 출력합니다.
-finally 블록: 프로그램이 종료될 때 항상 실행되는 메시지를 출력합니다.


5. 사용자 정의 예외

파이썬에서는 사용자 정의 예외를 만들 수도 있습니다. 이를 통해 특정 조건에서 오류를 발생시키고 처리할 수 있습니다.

 

[예제]
class CustomError(Exception):
    pass

def check_positive(num):
    if num < 0:
        raise CustomError("음수는 허용되지 않습니다!")

try:
    check_positive(-10)
except CustomError as e:
    print(e)


[설명]
-CustomError 클래스: Exception 클래스를 상속받아 사용자 정의 예외를 만듭니다.
-check_positive 함수: 입력된 숫자가 음수일 경우 CustomError를 발생시킵니다.
-try-except 블록: 사용자 정의 예외를 처리하여 오류 메시지를 출력합니다.


6. 마치며

예외처리는 프로그래밍에서 매우 중요한 부분입니다. 예외를 적절히 처리함으로써 프로그램의 안정성을 높이고 사용자 경험을 개선할 수 있습니다. 

반응형