2011-02-23 4 views
0

일부 텍스트에서 일부 구문 분석을 시도하고 있습니다. 필자는 내 program'd 본문에 파서의 바이너리 버전을 가지고 있는데, 나는이 파서를 실행하고 하나씩 문장을 전달하기 위해 call을 사용한다. 그러나 어떤 이유로 파서가 문장을 파싱 할 수없고 오류를 생성 할 수없는 경우가 있습니다. 단어에 넣기가 약간 어려울 수도 있지만 오류 메시지가 인쇄되지만 충돌은 발생하지 않고 정상적으로 종료됩니다. 내 이해는 파서 자체에서 일종의 예외 처리가 수행되어 충돌이 발생하지 않는다는 것입니다. 그러나 나는이 문제가있는 문장들을 추적하고 싶다. 즉 파서가 문장을 파싱 할 수없는 경우 해당 문장을 파일에 쓰고 싶습니다. 내 모든 프로그램에서하는 것처럼 정상적인 예외 처리를 사용했지만 예외가 파서 프로그램 내부에서 처리되었으므로 예외를 catch 할 수없는 것 같습니다. 누구든지 내가 어떻게 이런 종류의 외부 예외를 잡아야하는지 알고 있습니까? 감사합니다.파이썬에서 예외 처리의 특별한 경우

+0

당신이 어떤 소스 코드를 제공 할 수 있는지 조언을 제공하는 것이 더 쉬울 수 있습니다. – sarnold

답변

0

call의 반환 코드를 확인하십시오. 정상/올바른 실행과 비교하여 예외를 얻을 때 다른 것이 있습니까? 예외를 원할 경우 check_call을 사용할 수 있습니다.

또 다른 해결책은 check_output을 사용하여 parser-program을 호출하고 출력을 검사하는 것입니다. 모든 기능에 대한

문서는 : Python subprocess module

관련 문제