이 질문에는 이미 답변이 있습니다.
나는 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
이름이 다음으로 변경되었습니다.suppress
3.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:
pass
KeyboardInterrupt가 중지되고 코드가 종료됩니다. - Chthonic Projectexcept
KeyboardInterrupt를 포함하여 모든 예외를 잡아낼 수 있습니다.try
. 귀하의 예제에서 거기에 KeyboardInterrupt 전에 발생할 수 있습니다try
또는 내부except
어디에서 잡히지 않는지 다음과 같은 예제를 실행하면while True:
try: pass
except: pass
KeyboardInterrupt가 약 50 %의 시간 만 잡히게됩니다. 만약 너라면time.sleep(1)
내부try
거의 매번 잡히게됩니다. - Jack O'Connor