Python: 예외를 무시하고 계속 진행하려면 어떻게 해야 합니까?
나도 해볼게...내 코드의 차단과 예외일 때를 제외하고.이 경우 모든 것이 정상적으로 작동하기 때문에 코드를 계속 사용하고 싶습니다.문제는 except: block을 비워두거나 #do nothing을 지정하면 구문 오류가 발생한다는 것입니다.continue는 루프가 아니기 때문에 사용할 수 없습니다.코드를 계속 진행하도록 지시하는 키워드가 있나요?
except Exception:
pass
일반적인 답변
Python의 표준 "nop"은pass스테이트먼트:
try:
do_something()
except Exception:
pass
사용.except Exception벌거벗는 대신except같은 예외를 피하다SystemExit,KeyboardInterrupt기타.
파이썬 2
파이썬 2에서 마지막으로 던진 예외가 기억되기 때문에 예외 삭제 문과 관련된 일부 개체는 무기한(실제로 다음 예외가 발생할 때까지) 라이브 상태로 유지됩니다.이것이 중요하며 (일반적으로) 마지막으로 발생한 예외를 기억할 필요가 없는 경우 대신 다음 작업을 수행할 수 있습니다.pass:
try:
do_something()
except Exception:
sys.exc_clear()
그러면 마지막으로 느려진 예외가 지워집니다.
파이썬 3
Python 3에서는 예외 인스턴스를 유지하는 변수는 다음 명령어를 종료할 때 삭제됩니다.except변수가 이전에 값을 유지했더라도, 입력 및 종료 후except블록은 다시 정의되지 않습니다.
Python 3.4에는 새로운 방법이 도입되어 있습니다.
from contextlib import suppress
with suppress(Exception):
# your code
여기에 추가된 커밋을 나타냅니다.http://hg.python.org/cpython/rev/406b47c64480
여기 저자 레이먼드 헤팅어(Raymond Hettinger)가 이것과 다른 모든 종류의 Python의 핫성에 대해 이야기합니다(43:30 비트 참조).http://www.youtube.com/watch?v=OSGv2VnC0go
맨몸을 모방하고 싶다면except키워드와 같은 것들을 무시합니다.KeyboardInterrupt--보통 그렇지 않지만--사용할 수 있습니다.with suppress(BaseException).
편집: 모양은 다음과 같습니다.ignored로 이름이 변경되었습니다.suppress3.4 출시 이전 버전입니다.
이것을 시험해 보세요.
try:
blah()
except:
pass
언급URL : https://stackoverflow.com/questions/574730/python-how-to-ignore-an-exception-and-proceed
'source' 카테고리의 다른 글
| PHPMYADMIN에서 group_concat을 사용하면 결과가 [BLOB - 3B]로 표시됩니다. (0) | 2023.01.15 |
|---|---|
| 리스트는 스레드 세이프입니까? (0) | 2023.01.15 |
| convert_tz가 null을 반환합니다. (0) | 2023.01.15 |
| Python 스크립트를 프로파일하려면 어떻게 해야 하나요? (0) | 2023.01.15 |
| jQuery를 사용하여 체크박스에 대해 "체크" 설정 (0) | 2023.01.15 |