Blind Catch란 무엇인가?
Blind Catch
는 try
/ except
구문에서 특정 예외 유형을 명시하지 않고, 모든 예외를 포괄적으로 처리하는 코딩 패턴을 말합니다. 예를 들어, 다음과 같은 코드가 이에 해당합니다
try:
# 일부 코드 실행
result = some_function()
except:
# 모든 예외를 포괄적으로 처리
print("An error occurred.")
왜 문제인가?
- 구체적인 예외 처리의 부재: 특정 예외를 명시하지 않으면, 코드가 어떤 예외를 처리하고 있는지 알기 어렵습니다. 이는 예외의 근본적인 원인을 놓치게 만들 수 있습니다.
- 디버깅의 어려움: 모든 예외를 동일하게 처리하면, 문제의 원인을 추적하기가 어려워집니다. 이는 코드의 유지보수성을 떨어뜨리고, 예기치 않은 동작을 초래할 수 있습니다.
- 예외 삼킴(Swallowing Exception):
Blind Catch
는 예외를 단순히 처리하는 것처럼 보이지만, 실제로는 예외를 무시하고 넘어가는 경우가 많습니다. 이는 중요한 오류를 감지하지 못하게 하고, 더 큰 문제로 이어질 수 있습니
해결방안
try:
result = some_function()
except IOError:
print("An I/O error occurred.")
except ValueError:
print("A value error occurred.")
import logging
try:
result = some_function()
except Exception as e:
logging.error("An unexpected error occurred: %s", e)