Python/포스팅

파이썬 오류 회피

짜집퍼박사(짜박) 2023. 12. 3. 14:20

파이썬에서는 예외가 발생하면 프로그램이 중단되는데, 이를 회피하고 예외를 무시하려면 try와 except 블록을 사용할 수 있습니다. 하지만 예외를 무작정 무시하는 것은 신중하게 다뤄야 합니다. 왜냐하면 예외는 프로그램이 실행 중에 문제가 발생했음을 나타내는 중요한 정보일 수 있기 때문입니다.

 

기본적인 예외 회피

try:
    # 예외가 발생할 수 있는 코드
    result = 10 / 0
except ZeroDivisionError:
    # 예외를 무시하고 계속 진행
    pass

위의 코드에서는 ZeroDivisionError 예외가 발생할 경우 pass 문을 사용하여 아무런 동작도 하지 않고 계속해서 다음 코드를 실행합니다.

 

여러 예외를 한꺼번에 처리하면서 일부만 회피

try:
    # 예외가 발생할 수 있는 코드
    result = int("abc")
except (ValueError, TypeError):
    # ValueError와 TypeError는 무시하고 계속 진행
    pass

여러 예외를 한꺼번에 처리할 때 튜플을 사용하여 여러 예외를 묶어서 처리할 수 있습니다.

 

모든 예외를 회피

try:
    # 예외가 발생할 수 있는 코드
    result = 10 / 0
except Exception:
    # 모든 예외를 무시하고 계속 진행
    pass

Exception 클래스는 모든 내장 예외의 부모 클래스이기 때문에 모든 예외를 처리할 때 사용할 수 있습니다. 하지만 이는 가능한 최소한으로 사용하는 것이 좋습니다. 가능하면 구체적인 예외를 지정하여 예외 처리를 하는 것이 좋습니다.

 

주의사항

 

1. 예외를 무시하면서도 로깅하기

import logging

try:
    # 예외가 발생할 수 있는 코드
    result = 10 / 0
except ZeroDivisionError:
    # 예외를 로깅하고 계속 진행
    logging.exception("Error occurred:")

프로그램의 디버깅을 위해 예외를 로깅하는 것이 좋습니다.

 

2. 예외를 무시해도 되는지 신중하게 판단

예외를 무시하면서도 정말로 그 상황을 무시해도 되는지 신중하게 판단해야 합니다. 가령, 파일을 열려고 할 때 파일이 존재하지 않아 발생하는 FileNotFoundError 예외를 무시하면 프로그램이 예상치 못한 결과를 가져올 수 있습니다.

 

3. 가능한한 구체적인 예외 처리

예외를 무시하는 것보다는 가능한한 구체적인 예외 처리를 하는 것이 코드의 안전성을 높일 수 있습니다.

 

예외를 무시하는 것은 코드의 흐름을 제어하는 일종의 예외 처리 방식이긴 하지만, 이를 남용하면 디버깅이 어려워지고 예상치 못한 문제가 발생할 수 있습니다. 가능하면 예외를 처리하거나 적절한 예외를 발생시켜 프로그램 흐름을 제어하는 것이 좋습니다.

 

With ChatGPT

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

파이썬 예외 만들기  (0) 2023.12.03
파이썬 오류 발생시키기  (0) 2023.12.03
파이썬 오류 예외 처리 기법  (0) 2023.12.03
파이썬 오류는 언제 발생하는가?  (0) 2023.12.03
파이썬 예외 처리  (0) 2023.12.03