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)
- try 문에 값들을 입력하도록 한다.
- except 문에 try에서 오류가 발생하면 그 해당 오류를 받도록 한다.
ValueError
나누기 전용 계산기
첫번 째 숫자를 입력 : 6
두번 째 숫자를 입력 : 삼
잘못된 값을 입력함
- try에서는 int 값을 받도록 했지만 숫자가 아닌 정수형을 입력하면 나는 에러다.
- 따라서 해당 변수형대로 입력하지 않으면 나오는 에러이다.
ZeroDivisionError
나누기 전용 계산기
첫번 째 숫자를 입력 : 6
두번 째 숫자를 입력 : 0
division by zero
-
except ZeroDivisionError as err:
print(err)
- 이렇게 입력을 하면 해당 에러가 어떤 에러인지 확인할 수 있다.
- 나눌 때 분모 값이 0이면 나타나는 에러이다.
Exception
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)
===========================================================
나누기 전용 계산기
첫번 째 숫자를 입력 : 6
두번 째 숫자를 입력 : 3
알 수 없는 에러 발생
list index out of range
- except Exception으로 작성하면 위의 exception 값이 아닌 다른 모든 exception을 찾아준다.
- 원래 try 문에서 하나의 리스트 안에 값을 주석처리해 나타나지 않도록 했다.
- 그럼 위의 다른 exception들을 통과하고 다른 exception인 list index out of range 에러가 발생했다고 로그가 나온다.