2014-12-11 2 views
0

나는 꽤 문제가 있습니다. 하나의 try 문에서 모든 문을 시도 할 수있는 방법을 찾으려고합니다. 예를 들어시도/예외 ... 오류가있는 경우에도 모두 시도하십시오

은 다음 기능 중 하나가 실패하기 때문에

try: 
    funct1() 
    funct2() 
    funct3() 
except: 
    print("expected") 

try/except는, 내 경우에는 예상된다. 다중 번호 try/except이 없으면 어떻게해야합니까? 아니면이를 수행하는 가장 좋은 방법은 무엇입니까?

현재 상황에서 funct2가 실패하면 funct3이 실행되지 않습니다.

+0

try-except를 함수에 사용하려고 시도 했습니까? – GLHF

+0

정말로 예외를 던질 것으로 예상됩니까? –

+0

나는 그렇다. 아래에 작성한 의견을 읽어주십시오. 그것은 모든 것을 분명히합니다. – Richard

답변

4

당신은 루프에서 try/except를 둘 수 있었다 : 이것은 하나 이상의 예외가 발생하더라도 모든 기능이 실행되는 것을 보장한다

for funct in (funct1, funct2, funct3): 
    try: 
     funct() 
    except Exception: # Catch something more specific if you can. 
     print("expected") 

.

+0

내 경우에는 작동하지 않습니다. 내가 분명히하자. 각 함수는 randomWidgetNameGoesHere.destroy()입니다. 나는 터미널에서 '예상'을 얻지 못한다. 보다 폭 넓은 이해를 위해 아래에 작성한 qqvc에 대한 의견을 읽어주십시오. – Richard

+0

위젯을 목록에 넣은 다음 위의 과정을 반복하여'try :'블록 내부의'destroy' 메소드를 호출 할 수 있습니다. 또는 더 나은 경우, 가능한 경우 모두 동일한 컨테이너 위젯에 넣으십시오. 그런 다음 부모 만 파괴하면됩니다. – iCodez

+0

모든 위젯을 동일한 컨테이너에 넣는 것이 좋습니다. 나는 그걸하는 법을 모른다. 그래서 나는 try/excepts를 시도했다. 내가 그것을 볼 것입니다. 고맙습니다. – Richard

0

내 의견으로는, try-except 블럭을 사용하십시오. 왜냐하면, 그들은 코드 묶음 사이에 오류를 잡기 때문입니다. 큰 프로그램에서, 하나의 오류를 모두 잡으려고한다면 문제가 될 것입니다. 따라서 을 시도해보십시오. 함수 내에서보다 명확하고 유용한 블록을 시도하십시오 .

+0

나는 분명히해야한다. 나는 Tkinter GUI 프로그램에서 위젯을 삭제하기 위해 이것을하고있다. 프로그램을 열면 세 가지 옵션이 있습니다. 각 옵션에는 일련의 입력 상자, 라벨 등이 있습니다. 각 상자의 위젯을 모두 삭제할 방법을 찾고있었습니다. 문제는 모든 위젯을 프레임에 넣은 다음 프레임을 삭제하는 방법을 모르기 때문에 모든 위젯을 시도하는 try/except 방법에 의지했습니다. – Richard

+0

내 조언은, 단지 try-except 블록을 넣으면 에러라고 생각할 때이다. 내 의견으로는 더 좋을 것이다. 만약 10 배를 사용해야한다면, 10 배를 사용해야한다. 따라서 프로그램에서 try-except 블록 사이에 위젯을 넣으십시오. 그러나 모든 오류를 발견하면 그것은 두통입니다. 당신은 당신의 프로그램에 무엇이 잘못되었는지를 볼 수 없을 것입니다. – GLHF

+0

사용자가 임의로 GUI에서 옵션을 선택할 수 있기 때문에 어디에서나 오류가 발생할 수 있습니다. – Richard

관련 문제