2014-12-31 4 views
0

텍스트 묶음에서 실행하는 일련의 프로세스가 있습니다. 어떤 이유로 든 프로세스가 실패 할 수 있습니다.파이썬에서 try-except로 코드가 어수선하게 흩어졌습니다.

각 프로세스의 실패를 기록하려면 try-except 절을 사용해야합니까? 문제는 내 코드가 try-except로 압도되어 프로세스의 주요 흐름이 조각으로 나뉜다는 것입니다.

for path in paths: 
    with open(path) as file: 
     text=file.read() 
     try: 
      process1(text) 
     except Exception as e: 
      handle e 
      record_failure(process1 , file.name) 
      continue 

     try: 
      process2(text) 
     except Exception as e: 
      handle e 
      record_failure(process2 , file.name) 
      continue 
     . 
     . 
     . 
     processN 

아니면 나중에 예외 로그 파일에서 분석해야할까요?

더 나은 방법이 있나요?

+1

목록에있는 모든 프로세스를 넣어, 반복 및 단지를 제외하고/하나 개의 시도가 –

답변

1

당신은 루프에서 모든 프로세스를 넣을 수 있습니다 :

allProcs = [process1, process2, processN] 

for path in paths: 
    with open(path) as file: 
     text=file.read() 
     for proc in allProcs: 
      try: 
       proc(text) 
      except Exception as e: 
       # handle e 
       record_failure(proc , file.name) 
       continue