파이썬에서 조금 바뀐 코드를 가지고 있는데, 코드를 실행할 때 함수 정의 누락과 같은 언어 오류가 발생하지 않습니다. 함수 정의가 누락 된 스크립트를 계속 실행할 수 없다고 생각했습니다. 실행하기 전에 함수를 실제로 정의하려는 의도로 한 곳에서 함수를 사용했지만 코드를 잊어 코드를 실행했습니다. 근무 I가 update_parse_status()에 호출을 추가했는데 클래스입니다파이썬에서 언어 오류와 런타임 오류를 다르게 처리하기
Worker instance has no attribute update_parse_status
- 놀랍게도 난 그냥 콘솔에 인쇄 된 다음 줄을 얻었다.
try:
Worker.update_parse_status()
except Exception as e:
print e
그래서 파이썬 그냥 AttributeError를 던져 내가 무의식적으로 그것을 잡는했다 -
은 내가 시도하고 일반적인 캐치이 같은 문제의 코드 주변의 모든 예외 핸들러를 가지고 있음을 깨달았다. 모든 예외 처리기를 잡을 필요가 없다는 것을 나에게 가르쳐주었습니다. 또한 컴파일 된 언어에서 오는 더 나은 방법이 처리 할 수 있습니까? 파이썬이 언어 오류를 그냥 종료시키는 지 확인하는 방법이 있습니까? 명백한 버그를 최소한으로 제거하는 것은 매우 도움이 될 것입니다 (비록 나쁜 코드가 나를이 상황에 빠트 렸는지는 알지만).
예외를 처리하지 않으면 (사용자의 경우) * catch하지 않습니다. 이런 식으로 제기되면 당신은 무슨 일이 일어나고 있었는지 정확하게 알려주는 멋진 추적을 얻을 수 있습니다.예외를 잡으면 처리하려는 * 가장 구체적인 * 예외를 잡으십시오. * 절대 사용하지 마십시오. '예외'또는 '예외 제외'. – Bakuriu