2014-05-21 1 views
0

을 처리 할 때 현재 코드를 다시 excute에, 그래서 뭔가를 크롤링 할 때 그것을 중지은`t, 그때는 다음과 같이 수행파이썬 : 어떻게 내가 샘플 크롤러에 기록 할 예외

def fun(arg0, arg1): 
    try: 
     pass 
    except Exception, e: 
     fun(arg0, arg1) 

I m really want to know, it 사를 무한 재귀으로 이어질 것입니다 - 좋은 생각, 또는 어떻게 더 잘 할 수, 감사

+0

'pass'는 예외를 발생시킬 수 없습니다. 함수의'except' 부분은 절대로 실행되지 않습니다. 너 정확히 뭘 하려구? –

+0

그래, 당신은'바로, '패스'를 썼습니다 잘못 ..... 일을하려고 난'함수가 예외를 제기하면 내가 다시 함수를 호출 중지하거나 옆 내 영어 내리지 할 것입니다 가난한 사람, 그걸 정리할 수 있니? 감사합니다 – user3659908

답변

0

는 함수 호출 자체를하지 마십시오.

대신 루프에 코드를 넣어.

def func(): 
    while there_are_things_to_do(): 

     set_up_for_work() 

     try: 
      result = do_something_that_might_fail() 
     except SomeKnownExeptionType: 
      handle_the_exception() 
      continue    # Cannot use result, try next work thing 

     do_something_with(result) 
+0

와우, 좋은 생각입니다. 그러나 대부분 '함수'가 한 번 실행됩니다. 'while'문에 루프를 중지하기위한 추가 의미없는 인수가 필요할 경우 감사합니다. 그건 그렇고, 나는 생각하지 않습니다. 'except'에서 함수 자체는 무한 루프를 만들 것입니다. 아무런 예외 루프도 없기 때문에 그렇습니까? – user3659908