본문 바로가기
Python/Python 이론

파이썬 : 예외 처리와 오류 핸들링

by P_eli 2024. 1. 27.
728x90
반응형

파이썬에서 예외 처리와 오류 핸들링에 대해 알아보겠습니다. 프로그래밍을 하다보면 발생할 수 있는 다양한 오류들을 효과적으로 처리하는 것은 중요합니다. 예외 처리는 코드의 안정성을 높이고 사용자 경험을 향상시키는 데 도움이 됩니다.

 

1. 기본적인 예외 처리

가장 기본적인 형태의 예외 처리는 try와 except 문을 사용하는 것입니다. 예제를 통해 살펴보겠습니다.

try:
    num1 = int(input("첫 번째 숫자를 입력하세요: "))
    num2 = int(input("두 번째 숫자를 입력하세요: "))
    result = num1 / num2
    print("나눈 결과:", result)

except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
except ValueError:
    print("올바른 숫자를 입력하세요.")
except Exception as e:
    print("오류 발생:", e)
else:
    print("예외가 발생하지 않았습니다.")
finally:
    print("예외 처리가 완료되었습니다.")

 

이 예제에서는 사용자로부터 두 개의 숫자를 입력받고, 나눗셈을 수행합니다. 각종 오류에 대한 예외 처리를 추가하여 안전하게 코드를 실행할 수 있습니다.

2. 사용자 정의 예외

때로는 특정 상황에서 발생하는 오류에 대해 사용자 정의 예외를 만들어 처리하는 것이 유용할 수 있습니다.

class CustomError(Exception):
    def __init__(self, message="사용자 정의 오류 발생"):
        self.message = message
        super().__init__(self.message)

def validate_input(value):
    if not value.isnumeric():
        raise CustomError("숫자를 입력하세요.")

try:
    user_input = input("숫자를 입력하세요: ")
    validate_input(user_input)
    result = int(user_input) ** 2
    print("결과:", result)

except CustomError as ce:
    print("사용자 정의 오류 발생:", ce)

except ValueError:
    print("올바른 숫자를 입력하세요.")

이 예제에서는 사용자 정의 예외인 CustomError를 정의하고, 입력된 값이 숫자가 아닐 경우 이 예외를 발생시킵니다.

3. 예외 정보 얻기

예외가 발생했을 때, 발생한 예외에 대한 정보를 얻는 것은 디버깅에 도움이 됩니다.

try:
    file = open("nonexistent.txt", "r")
except FileNotFoundError as fnfe:
    print("파일을 찾을 수 없습니다:", fnfe)
    print("에러 메시지:", fnfe.strerror)

 

이 예제에서는 존재하지 않는 파일을 열려고 시도하면 FileNotFoundError가 발생하고, 해당 예외의 정보를 출력합니다.

파이썬의 예외 처리는 코드의 견고성을 높이고, 프로그램이 예기치 않은 상황에서도 제어를 유지할 수 있게 해줍니다. 다양한 예외 상황에 대비하여 적절한 예외 처리를 추가하는 것은 좋은 프로그래밍 습관 중 하나입니다.

728x90
반응형