예시코드)
class NotUseZeroException(Exception):
def __init__(self, n):
super().__init__(f'{n}은(는) 사용할 수 없습니다.')
def divCarculator(n1, n2):
if n2 == 0:
raise NotUseZeroException(n2)
else:
print(f'{n1} / {n2} = {n1/ n2}')
num1 = int(input('input number1: '))
num2 = int(input('input number2: '))
try:
divCarculator(num1, num2)
except NotUseZeroException as e:
print(e)
실행결과)
input number1: 10
input number2: 0
0은(는) 사용할 수 없습니다.
실습코드)
class PasswordLengthShortException(Exception):
def __init__(self, str):
super().__init__(f'{str}: 길이 5미만')
class PasswordLengthLongException(Exception):
def __init__(self, str):
super().__init__(f'{str}: 길이 10초과')
class PasswordhWrongException(Exception):
def __init__(self, str):
super().__init__(f'{str}: 잘못된 비밀번호')
password = input('input admin password: ')
try:
if len(password) < 5:
raise PasswordLengthShortException(password)
elif len(password) > 10:
raise PasswordLengthLongException(password)
elif password != 'password':
raise PasswordhWrongException(password)
elif password == 'password':
print('빙고!')
except PasswordLengthShortException as e1:
print(e1)
except PasswordLengthLongException as e2:
print(e2)
except PasswordhWrongException as e3:
print(e3)
나만의 Exception 문을 class 로 만들어서 사용하는 코드이다.
class , def , try 문으로 크게 뜯어서 보면 좀 더 이해가 쉬울 것 이다.
음..아무래도 클래스를 만들어두고 함수와 실행문을 만들어야 하는 그 구조를
머리속으로 짜는데 시간이 좀 걸릴 것 같다. 스스로 만들기에는 아직은 어렵기 때문에
더 실습코드로 연습을 해야 할 것 같다.
코드를 보면 이해가 되지만 백지에서 저런 코드를 짜는 것은 아직은 머리가 뽀가진다..ㅎ
그치만 완성이 되었을 때 그 쾌감이 엄청나기 때문에 공부를 계속 해야 겠다는 생각이 든다!
강의 12일꺼까지 다 듣기!!