Python 캡 처 코드 의 모든 이상 한 방법
어떻게 코드 중의 모든 이상 을 포착 합 니까?
해결 방안
모든 이상 을 캡 처 하려 면 Exception 을 직접 캡 처 하면 됩 니 다.
try:
...
except Exception as e:
...
log('Reason:', e) # Important!
이것 은SystemExit
,KeyboardInterrupt
,GeneratorExit
를 제외 한 모든 이상 을 포착 할 것 이다.이 세 가지 이상 을 더 잡 으 려 면Exception
을BaseException
로 바 꾸 면 된다.토론 하 다.
모든 이상 을 포착 하 는 것 은 프로그래머 가 어떤 복잡 한 조작 에서 가능 한 모든 이상 을 기억 하지 못 하기 때문이다.세심 하지 않 은 사람 이 라면 디 버 깅 하기 어 려 운 코드 를 만 드 는 간단 한 방법 이기 도 합 니 다.
그 렇 기 때문에 모든 이상 을 캡 처 하 는 것 을 선택 하면 어 딘 가(예 를 들 어 로그 파일,화면 이상 인쇄)에서 정확 한 원인 을 인쇄 하 는 것 이 중요 합 니 다.만약 당신 이 이렇게 하지 않 았 다 면,가끔 이상 한 인쇄 를 볼 때 머리 를 쓰 지 못 할 수도 있 습 니 다.아래 와 같이:
def parse_int(s):
try:
n = int(v)
except Exception:
print("Couldn't parse")
이 함 수 를 실행 해 보 세 요.결 과 는 다음 과 같 습 니 다.
>>> parse_int('n/a')
Couldn't parse
>>> parse_int('42')
Couldn't parse
>>>
이 럴 때 너 는 머리 를 긁 적 이 며"이게 무슨 일이 야?"라 고 생각한다.만약 당신 이 아래 와 같이 이 함 수 를 다시 쓴다 면:
def parse_int(s):
try:
n = int(v)
except Exception as e:
print("Couldn't parse")
print('Reason:', e)
이 때 다음 출력 을 가 져 올 수 있 습 니 다.프로 그래 밍 오류 가 있 습 니 다.
>>> parse_int('42')
Couldn't parse
Reason: global name 'v' is not defined
>>>
가능 한 한 이상 처리 장 치 를 정확하게 정의 해 야 한 다 는 것 이 분명 하 다.그러나 모든 이상 을 포착 하고 정확 한 진단 정 보 를 인쇄 하거나 이상 을 전파 해 야 한다 면 이상 을 잃 지 않 을 것 이다.이상 은 Python 캡 처 코드 의 모든 이상 한 방법 에 대한 상세 한 내용 입 니 다.Python 캡 처 이상 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.