[파이썬] 예외 감지 패턴의 사용

예외 감지 패턴의 사용

예외 감지는 프로그램 실행 중에 발생할 수 있는 예기치 않은 상황에 대처하기 위해 사용되는 중요한 개념입니다. 패턴을 사용하여 예외를 감지하고 처리할 수 있으며, 이는 프로그램의 안정성과 신뢰성을 향상시키는 데 도움이 됩니다.

Python은 강력한 예외 처리 기능을 제공하며, 개발자가 예외를 감지하고 명확하게 처리할 수 있도록 도와줍니다. 예외 감지 패턴을 사용하여 예외 처리를 개선할 수 있습니다.

아래는 몇 가지 예외 감지 패턴을 보여주는 예제 코드입니다.

1. try-except 문

try-except 문은 가장 기본적인 예외 감지 패턴으로, 예외가 발생할 수 있는 부분을 try 블록으로 감싸고, 해당 예외를 처리하는 except 블록을 제공합니다. 예외를 감지하면 프로그램 실행이 중단되지 않고 예외 처리 블록이 실행됩니다.

try:
    # 예외가 발생할 수 있는 코드
    result = 10 / 0
except ZeroDivisionError:
    # 예외 처리 코드
    print("0으로 나눌 수 없습니다.")

2. 다중 except 문

다중 except 문은 여러 종류의 예외를 동시에 처리하는 패턴입니다. 예외들을 각각의 except 블록에 명시하고, 적절한 예외 처리를 제공합니다.

try:
    # 예외가 발생할 수 있는 코드
    result = int(input("숫자를 입력하세요: "))
except ValueError:
    # 숫자가 아닌 값이 입력될 경우 처리 코드
    print("유효한 숫자를 입력하세요.")
except KeyboardInterrupt:
    # 프로그램 실행 중 Ctrl+C가 눌릴 경우 처리 코드
    print("프로그램이 종료되었습니다.")

3. else 문

else 문은 예외가 발생하지 않은 경우 실행할 코드를 제공하는 패턴입니다. try 블록의 코드가 예외 없이 정상적으로 실행되었을 때, else 블록이 실행됩니다.

try:
    # 예외가 발생할 수 있는 코드
    result = int(input("나눌 숫자를 입력하세요: "))
    result = 10 / result
except ValueError:
    # 숫자가 아닌 값이 입력될 경우 처리 코드
    print("유효한 숫자를 입력하세요.")
except ZeroDivisionError:
    # 숫자를 0으로 나눌 경우 처리 코드
    print("0으로 나눌 수 없습니다.")
else:
    # 예외 없이 코드가 정상적으로 실행된 경우 처리 코드
    print("결과:", result)

4. finally 문

finally 문은 예외 발생 여부에 상관없이 항상 실행되어야 하는 코드를 제공하는 패턴입니다. 주로 파일이나 네트워크 연결과 같은 리소스를 해제하는 역할을 합니다.

try:
    # 예외가 발생할 수 있는 코드
    file = open("example.txt", "r")
    # 파일의 내용 읽기 등 추가 작업 수행
except FileNotFoundError:
    # 파일이 없는 경우 처리 코드
    print("파일이 존재하지 않습니다.")
finally:
    # 항상 실행되어야 하는 코드
    file.close()

예외 감지 패턴은 프로그램을 보다 안정적으로 만들고 예외 상황을 처리할 수 있도록 도와줍니다. Python에는 다양한 예외 처리 기능이 있으니, 프로그램의 요구사항에 맞게 적절한 패턴을 선택하여 사용하는 것이 중요합니다.