이 질문에는 이미 답변이 있습니다.
나는 try ... 예외를 내 코드에 넣고 예외가 발생했을 때. 나는이 코드를 계속 사용하기를 원합니다. 왜냐하면 모든 것이 여전히 잘 돌아갈 수 있기 때문입니다. 문제는 except 블록을 비워 두거나 #do를 사용하지 않으면 구문 오류가 발생합니다. 루프가 아니기 때문에 계속 사용할 수 없습니다. 거기에 계속 사용할 코드를 알려주는 키워드가 있습니까?
except:
pass
파이썬에서 표준 "nop"은pass성명서:
try:
do_something()
except Exception:
pass
사용except Exception맨손으로 대신except같은 잡기 피하기SystemExit,KeyboardInterrupt기타
마지막으로 throw 된 예외가 Python 2에서 기억되기 때문에 예외 스레딩 문과 관련된 객체 중 일부는 무기한 보관됩니다 (실제로는 다음 예외가 발생할 때까지). 이것이 당신에게 중요하고 마지막으로 던져진 예외를 기억할 필요가 없다면 (일반적으로) 다음과 같이하면됩니다.pass:
try:
do_something()
except Exception:
sys.exc_clear()
마지막으로 throw 된 예외를 지 웁니다.
Python 3에서 예외 인스턴스를 보유하는 변수는삭제 된~에서 나가기.except블록. 변수가 이전에 값을 보유하고 있더라도 변수를 입력하고 종료 한 후에except그것을 막다정의되지 않은다시.
exc_clear파이썬 3에서 삭제되었습니다.docs.python.org/3/whatsnew/3.0.html#index-22. 파이썬 3에서 이것을 다루는 몇 가지 방법은 다음을 참조하십시오 :cosmicpercolator.com/2016/01/13/… - bcattle
파이썬 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).
편집 : 모양ignored이름이 다음으로 변경되었습니다.suppress3.4 릴리스 이전.
try...catch: pass따라서 블록 내부에서 예외가 발생하면 블록의 끝에서 실행이 계속됩니다. - Jack O'Connorwith suppress(TypeError): return data[0](더 긴 예 :pastebin.com/gcvAGqEP) - Airwith suppress(Exception)2017-09에서 try / except가 더 잘 수행되기 때문입니다. 이 커밋을 확인하십시오.되돌리기 "Fixed # 27818 - try / except / context를 contextlib.su로 대체 ... - stackoverYC
이 시도:
try:
blah()
except:
pass
while True:try:f = 열린 (& filedesnotexist.txt & # 39;)`except:passKeyboardInterrupt가 중지되고 코드가 종료됩니다. - Chthonic ProjectexceptKeyboardInterrupt를 포함하여 모든 예외를 잡아낼 수 있습니다.try. 귀하의 예제에서 거기에 KeyboardInterrupt 전에 발생할 수 있습니다try또는 내부except어디에서 잡히지 않는지 다음과 같은 예제를 실행하면while True:try: passexcept: passKeyboardInterrupt가 약 50 %의 시간 만 잡히게됩니다. 만약 너라면time.sleep(1)내부try거의 매번 잡히게됩니다. - Jack O'Connor