* 만약 어떤 함수에서 예외가 발생하여 그곳에서 잡히지 않았다면, 호출한 함수에 일치하는 핸들러에 의해서 이 예외를 잡을 떄까지 버블링 한다. 만약 예외 처리에 대한 핸들러를 제공하지 않았다면, 파이썬은 에러 메시지와 오류가 발생한 위치에 대한 정보를 출력하고 프로그램을 종료 한다.*
short_list = [1,2,3]
position = 5
try:
short_list[position]
except:
print('Need a position between 0 and', len(short_list)-1, ' but got', position)
Need a position between 0 and 2 but got 5
위와 같이 인자 없는
except
문을 지정 하는 것은 모든 예외 타입을 잡는다는 것을 말한다. ** 에외 타입을 넘어 예외 사항에 대항 세부정보를 얻고 싶다면 변수이름에서 예외 객체 전체를 얻을 수 있다. **
` except 예외 타입 as 이름 `short_list = [1, 2, 3] while True: value = input('Position [q to quit]? ') if value == 'q': break try: position = int(value) print(short_list[position]) except IndexError as err: print('Bad index:', position) except Exception as other: print('Something else broke:', other)
Position [q to quit]? 1 2 Position [q to quit]? 0 1 Position [q to quit]? 2 3 Position [q to quit]? 3 Bad index: 3 Position [q to quit]? 2 3 Position [q to quit]? two Something else broke: invalid literal for int() with base 10: ‘two’ Position [q to quit]? q
Comments