2012-10-22 7 views
3

여기에서 python tutorial을 읽었습니다. 이해할 수없는 것이 하나 있습니다. 해당 문서의 설명에서파이썬 설명서에서 예외를 제외하고 시도하십시오

for arg in sys.argv[1:]: 
    try: 
     f = open(arg, 'r') 
    except IOError: 
     print 'cannot open', arg 
    else: 
     print arg, 'has', len(f.readlines()), 'lines' 
     f.close() 

: 워드 프로세서

다른 절의 사용이 실수하지 않았다 예외를 잡기 피한다 때문에 시도 절에 추가 코드를 추가하는 것보다 낫다 try ... except 문으로 보호되는 코드에 의해 발생합니다.

제 질문은 실수로이 try 블록에서 발생하지 않은 예외를 잡는 것을 방지하는 방법입니다. 나는 그들이 의미하는 것을 보지 못한다. 누구든지 예제를 줄 수 있습니까? 당신이 시도 할 수

+0

이것은 내가 읽고있는 문서에 대한 링크입니다. http://docs.python.org/tutorial/errors.html#handling-exceptions –

답변

2

한 가지 다른 방법이 있습니다 :

여기
for arg in sys.argv[1:]: 
    try: 
     f = open(arg, 'r') 
     print arg, 'has', len(f.readlines()), 'lines' 
     f.close() 
    except IOError: 
     print 'cannot open', arg 

동안 예외가있을 경우 f.readlines() 또는 다음이 except 블록에 의해 잡힐 것 f.close() 당신은 오류 메시지가 표시됩니다 'cannot open'하는 잘못된 것입니다.

+0

감사합니다! 나는이 대답을 받아들입니다. 하지만 나 한테 더 많은 예를 들어 주시겠습니까? :) –

+1

예를 들어, 내 대답을 초 앞에서했기 때문에 의견을 추가했습니다 :) 게시 된 예제에 대해 "이 작업을 시도하십시오. 뭔가 잘못되면 예외를 제기하고 나머지는 계속합니다"와 같이보아야합니다. 위험한 코드를 오해의 소지가있는 다른 부분과 분리합니다. –

관련 문제