파이썬 : 예외를 무시하고 진행하는 방법? [복제]
이 질문에는 이미 답변이 있습니다.
- 예외를 올바르게 무시하는 방법 11 답변
코드에 try ... except 블록이 있고 예외가 발생했을 때. 이 경우 코드를 계속 사용하고 싶습니다.이 경우 모든 것이 여전히 잘 실행될 수 있기 때문입니다. except : 블록을 비워 두거나 #do nothing으로두면 구문 오류가 발생합니다. 루프에 없기 때문에 continue를 사용할 수 없습니다. 코드를 계속 사용하도록 지시하는 키워드가 있습니까?
except:
pass
일반적인 답변
파이썬에서 표준 "nop"은 다음 pass
과 같습니다.
try:
do_something()
except Exception:
pass
사용 except Exception
베어 대신 except
잡기 예외가 좋아 피하기 SystemExit
, KeyboardInterrupt
등
파이썬 2
Python 2에서 마지막으로 throw 된 예외가 기억되기 때문에 예외 발생 문과 관련된 일부 개체는 무기한으로 유지됩니다 (실제로 다음 예외까지). 이것이 당신에게 중요하고 (일반적으로) 마지막으로 throw 된 예외를 기억할 필요가없는 경우 대신 다음을 수행 할 수 있습니다 pass
.
try:
do_something()
except Exception:
sys.exc_clear()
마지막으로 발생한 예외가 지워집니다.
파이썬 3
Python 3에서 예외 인스턴스를 보유한 변수 는 블록 을 종료 할 때 삭제됩니다except
. 변수가 이전에 값을 보유 했더라도 except
블록 을 시작하고 종료 한 후에 는 다시 정의되지 않습니다 .
파이썬 3.4에서이를 수행하는 새로운 방법이 있습니다.
from contextlib import suppress
with suppress(Exception):
# your code
추가 한 커밋은 다음과 같습니다. http://hg.python.org/cpython/rev/406b47c64480
그리고 저자 Raymond Hettinger는 이것과 다른 모든 종류의 파이썬 인기에 대해 이야기합니다 (43:30의 관련 비트) : http://www.youtube.com/watch?v=OSGv2VnC0go
베어 except
키워드 를 에뮬레이션하고 KeyboardInterrupt
일반적으로 그렇지 는 않지만 다음 과 같은 것을 무시 하려는 경우을 사용할 수 있습니다 with suppress(BaseException)
.
편집 : 3.4 릴리스 이전 ignored
으로 이름이 변경된 것 같습니다 suppress
.
이 시도:
try:
blah()
except:
pass
참고 URL : https://stackoverflow.com/questions/574730/python-how-to-ignore-an-exception-and-proceed
'Programing' 카테고리의 다른 글
SQL Server 2008에서 앞에 오는 0으로 문자열을 채우면 길이는 3 자입니다. (0) | 2020.03.02 |
---|---|
터미널에서 MySQL로 데이터베이스를 가져 오려면 어떻게해야합니까? (0) | 2020.03.02 |
Cygwin을 사용하여 C : \의 디렉토리로 이동하는 방법은 무엇입니까? (0) | 2020.03.02 |
C #에서 유닉스 타임 스탬프를 얻는 방법 (0) | 2020.03.02 |
파이썬 목록 대 배열-언제 사용합니까? (0) | 2020.03.02 |