파이썬 : 한번만 여러 번 시도


199

파이썬에서는 except하나의 try문장에 대해 여러 문장 을 가질 수 있습니까? 같은 :

try:
 #something1
 #something2
except ExceptionType1:
 #return xyz
except ExceptionType2:
 #return abc

7
@ Eva611 : 사과하지 마십시오. (1) 사용해보십시오. (2) 질문에 대한 답변을 게시하십시오.
S.Lott

6
작동합니다. 파이썬 통역사와 함께 그것을 시도
Eva611

39
@ Eva611 귀하의 질문에 문제가없는 것 같습니다. Python 인터프리터에서 예제를 설정하는 것보다 Google에 훨씬 빠르므로 요청 해 주셔서 감사합니다. DrTysa와 다른 사람들은 당신을 꾸짖기보다는 빠른 "예"로 응답했을 것입니다.
galarant

5
대부분의 첫 번째 추측이 틀리거나 미묘한 뉘앙스를 그리워 할 것이므로 (15,000 명의 다른 사람들처럼) 먼저 Google을 시도했습니다!
Chris

9
나는 구글을 시도 하고이 질문을 발견했다. 따라서 다른 누군가가 공개 포럼에서 SO와 같은 포럼을 요청한 것에 대해 기뻐하며 Google 알고리즘이 내 첫 번째 결과로 그것을 표시 한 다른 사람들이 그것에 대해 기뻐했습니다.
kingledion

답변:


332

네 가능합니다.

try:
   ...
except FirstException:
   handle_first_one()

except SecondException:
   handle_second_one()

except (ThirdException, FourthException, FifthException) as e:
   handle_either_of_3rd_4th_or_5th()

except Exception:
   handle_all_other_exceptions()

참조 : http://docs.python.org/tutorial/errors.html

"as"키워드는 나중에 코드에서 오류를보다 철저하게 조사 할 수 있도록 오류를 변수에 지정하는 데 사용됩니다. 또한 트리플 예외 경우에 괄호가 파이썬 3에 필요한 참고이 페이지는 더 많은 정보를 가지고 : (블록 제외) 한 줄의 캐치 여러 예외


78
두 경우 모두 동일한 작업을 수행하려면 except (SomeError, OtherError):입니다. OP 질문에 대답하지 않지만 Google을 통해 여기에 오는 일부 사람들에게 도움이 될 수 있습니다.
Mark

예를 들어 여러 버전의 데이터 구조를 새 구조로 변환해야하는 경우 코드 버전을 업데이트 할 때 try..excepts를 중첩시킬 수 있습니다.
작센의

5
모든 예외를 처리하려면 except Exception:plain 대신 사용해야합니다 except:. (일반도 잡을 것 제외시켰다 SystemExitKeyboardInterrupt일반적으로 당신이 원하는하지 않은)
polvoazul

다음과 e같이 이름을 지정하기 때문에 무언가를하고 싶을 수도 있습니다. :)
HelloGoodbye
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.