망가진 부분을 알아야 고칠 수 있는법!
위 사진처럼 파이썬을 사용하다가 발생하는 에러와 처리방법에 대해 알아보도록 하겠습니다.
코드를 입력하세요
a, b = 10,5
print(c) # c는 사용한적 없음
a = 10
b = 0 # 영으로 나눌 수 없음.
print(a/b)
x = [10, 20, 30]
print(x[3])
dic = {'name':'hoon', 'color':'red'}
print(dic['age']) # age라는 key 값이 존재하지 않음.
import random
a = random.radin(0,10) # radint(o)
print(a)
x = [1, 2, 3, 4, 5]
print(x.index(10)) # 10은 x에 없는 값!
f = open('전화번호부.txt', 'r')
# 정확한 경로와 파일명을 입력해야 한다.
x = [3]
y = (1,5)
z = "팔"
print(x+y+z) # 타입이 다르므로 에러 발생
위에서 정리한 것과 같이 에러가 발생하면 그 위치에서 프로그램이 종료가 되어 그 이후의 코드들은 실행되지 않는다.
유저가 사용하던 프로그램이 에러로 인해 정지되는 것은 큰 문제가 된다.
예외처리를 이용 에러로 인해 프로그램이 종료되거나 멈추는 것을 방지한다.
class BigNumberError(Exception):
pass
class BigNumberError(Exception):
def __init__(self, msg):
self.msg = msg
def __str__(self):
return self.msg
try:
print("한 자리 숫자 전용 계산기입니다.")
num1 = int(input("첫 번째 숫자를 입력하세요 : "))
num2 = int(input("두 번째 숫자를 입력하세요 : "))
if num1 >= 10 or num2 >= 10:
# raise ValueError
# raise BigNumberError
raise BigNumberError("입력값 : {0}, {1}".format(num1, num2))
print("{0} / {1} = {2}".format(num1, num2, int(num1/num2)))
except ValueError:
print("잘못된 값을 입력하셨습니다. 한 자리 숫자만 입력하세요")
except BigNumberError as err:
print("에러 발생. 한 자리 숫자만 입력하여 주세요.")
print(err)
finally:
print("계산기를 이용해 주셔서 감사합니다.")
이제 터미널을 실행하다 에러가 떠도 겁먹지 않게 되었다. 그리고 무엇이 문제인지 알게되어 좀더 쉽게 수정을 할 수 있지 않을까...?