더북(TheBook)

동일하게 6과 3을 입력하니 이번에는 IndexError라는 새로운 오류가 발생합니다. 오류 메시지를 보면 리스트의 인덱스 범위를 벗어났다고 나옵니다. 현재 리스트에는 입력받은 두 수([6, 3])만 들어 있어서 인덱스는 0, 1만 있습니다. 그런데 format() 함수로 nums[2]에 접근하려고 해서 발생하는 오류입니다.

ValueErrorZeroDivisionError 때처럼 IndexError 구문을 추가하면 예외 처리를 할 수 있습니다. 그런데 이렇게 모든 오류에 대한 예외 처리를 프로그램 안에 작성하려면 코드가 한없이 길어집니다. 그래서 코드 마지막에 다음과 같이 구문을 추가하면 지금까지 정의하지 않은 모든 오류를 예외 처리할 수 있습니다.

try:
    print("나누기 전용 계산기입니다.")
    nums = []
    nums.append(int(input("첫 번째 숫자를 입력하세요 : ")))
    nums.append(int(input("두 번째 숫자를 입력하세요 : ")))
    # nums.append(int(nums[0] / nums[1]))
    print("{0} / {1} = {2}".format(nums[0], nums[1], nums[2]))
except ValueError:
    print("오류 발생! 잘못된 값을 입력했습니다.")
except ZeroDivisionError as err:
    print(err)
except Exception as err:
    print("알 수 없는 오류가 발생했습니다.")
    print(err)

실행결과 icon_con

나누기 전용 계산기입니다.
첫 번째 숫자를 입력하세요 : 6
두 번째 숫자를 입력하세요 : 3
알 수 없는 오류가 발생했습니다.
list index out of range

다시 실행한 후 똑같이 6과 3을 입력하면 예외 처리가 적용되는 것을 확인할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.