Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

모든 Python 예외를 catch하는 try/except 블록을 작성하려면 어떻게 해야 합니까?

<시간/>

아래와 같은 코드를 사용하여 모든 예외를 잡을 수 있지만 해서는 안 된다는 것이 일반적인 경험 법칙입니다.

try:
    #do_something()
except:
    print "Exception Caught!"

그러나 이것은 또한 우리가 관심을 갖지 않을 수 있는 KeyboardInterrupt와 같은 예외도 포착합니다. 예외를 즉시 다시 발생시키지 않으면 예외를 포착할 수 없습니다.

try:
    f = open('file.txt')
    s = f.readline()
    i = int(s.strip())
except IOError as (errno, strerror):
    print "I/O error({0}): {1}".format(errno, strerror)
except ValueError:
    print "Could not convert data to an integer."
except:
    print "Unexpected error:", sys.exc_info()[0]
    raise

file.txt가 스크립트와 동일한 폴더에서 사용 가능하지 않은 경우 다음과 같은 출력을 얻습니다.

I/O error(2): No such file or directory