티스토리 뷰

이번에는 의도적으로 에러를 발생시키는 방법을 공부해보겠습니다.

실제로 에러 상황이 발생한 것이 아니라도 프로그램이 허용하지 않는 동작을 하려고 할 때 의도적으로 에러를 발생시킬 수 있으며 문법은 다음과 같습니다.

raise 에러종류

 

계산기의 종류를 조금 바꿔서 한 자리 숫자에 대해서만 나누기를 할 수 있도록 해보겠습니다. 다만 나눗셈을 하기 전에 사용자로부터 입력받은 값들이 한 자리 숫자가 맞는지 확인하여 조건에 맞지 않을 때는, 즉 10 이상일 때는 의도적으로 ValueError 를 발생시키고 except 를 통해 예외처리를 하도록 하겠습니다.

try:
    print("한 자리 숫자 나누기 전용 계산기입니다.")
    num1 = int(input("첫 번째 숫자를 입력하세요: "))
    num2 = int(input("두 번째 숫자를 입력하세요: "))
    if num1 >= 10 or num2 >= 10: # 입력받은 수가 한 자리인지 확인
        raise ValueError
    print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))
except ValueError:
    print("잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요.")

 

프로그램을 실행시키고 각각 한 자리 숫자인 6 과 2 를 적어보면 정상적으로 3 이 출력되는 것을 볼 수 있습니다.

한 자리 숫자 나누기 전용 계산기입니다.
첫 번째 숫자를 입력하세요: 6
두 번째 숫자를 입력하세요: 2
6 / 2 = 3

 

프로그램을 다시 실행시키고 일부러 에러 상황을 만들기 위해서 첫 번째 숫자를 두 자리인 10 으로 입력하고 두 번째 숫자는 5 라고 해보겠습니다.

한 자리 숫자 나누기 전용 계산기입니다.
첫 번째 숫자를 입력하세요: 10
두 번째 숫자를 입력하세요: 5
잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요.

이번에는 if 문에 의해서 ValueError 가 발생하였고 이에 따라 예외 처리 구문에 작성한 print() 의 내용이 출력되는 것을 확인할 수 있습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함