Python/포스팅

파이썬 예외 처리

짜집퍼박사(짜박) 2023. 12. 3. 13:23

파이썬에서 예외 처리는 코드 실행 중에 발생할 수 있는 예외나 오류를 처리하는 메커니즘입니다. 예외 처리를 통해 프로그램이 예외 상황에서도 graceful하게 종료되지 않고, 예외에 대한 적절한 조치를 취하거나 사용자에게 메시지를 제공할 수 있습니다.

 

기본적인 예외 처리 구문

try:
    # 실행할 코드
    result = 10 / 0  # 예외 발생
except ZeroDivisionError:
    # 예외가 발생했을 때 처리할 코드
    print("Cannot divide by zero!")
else:
    # 예외가 발생하지 않았을 때 실행할 코드
    print("Division successful.")
finally:
    # 항상 실행할 코드 (예외 발생 여부와 상관없이)
    print("This block always runs.")

 

try, except, else, finally 설명

1. try 블록: 예외가 발생할 수 있는 코드를 포함하는 블록입니다. 이 블록 안에서 예외가 발생하면 바로 해당 예외를 처리할 except 블록으로 이동합니다.
2. except 블록: try 블록에서 예외가 발생했을 때 실행되는 블록입니다. 여러 개의 except 블록이 있을 수 있고, 각 블록은 특정 예외 타입에 대응합니다.
3. else 블록: try 블록에서 예외가 발생하지 않았을 때 실행되는 블록입니다. 이 블록은 선택 사항입니다.
4. finally 블록: 예외 발생 여부와 상관없이 항상 실행되는 블록입니다. 주로 리소스 정리 등의 작업에 사용됩니다.

 

예외 처리의 다양한 예

try:
    x = int(input("Enter a number: "))
    result = 10 / x
except ValueError:
    print("Invalid input. Please enter a valid number.")
except ZeroDivisionError:
    print("Cannot divide by zero.")
else:
    print("Division successful.")
finally:
    print("This block always runs.")

 

사용자 정의 예외

class MyCustomError(Exception):
    def __init__(self, message="This is a custom error."):
        self.message = message
        super().__init__(self.message)

try:
    raise MyCustomError("Custom error message")
except MyCustomError as e:
    print(f"Caught an exception: {e}")

 

except에서 여러 예외 처리하기

try:
    x = int(input("Enter a number: "))
    result = 10 / x
except (ValueError, TypeError):
    print("Invalid input. Please enter a valid number.")
except ZeroDivisionError:
    print("Cannot divide by zero.")
else:
    print("Division successful.")
finally:
    print("This block always runs.")

여러 예외를 동시에 처리할 때는 괄호로 묶어서 튜플 형태로 나열합니다.

 

except에서 예외 정보 얻기

try:
    x = int("abc")  # ValueError 발생
except ValueError as ve:
    print(f"Caught a ValueError: {ve}")

except 블록에서 예외 객체를 변수에 할당하여 예외에 관한 정보를 얻을 수 있습니다.

예외 처리는 코드의 안정성을 향상시키고 예측할 수 없는 상황에서의 프로그램 동작을 보호하는 데 도움이 됩니다.

 

With ChatGPT

'Python > 포스팅' 카테고리의 다른 글

파이썬 오류 예외 처리 기법  (0) 2023.12.03
파이썬 오류는 언제 발생하는가?  (0) 2023.12.03
파이썬 relative 패키지  (0) 2023.12.03
파이썬 init__.py 의 용도  (0) 2023.12.03
파이썬 패키지 안의 함수 실행  (0) 2023.12.03