Python에서 예외를 발생시키는 함수
조건문을 사용하여 함수 내에서 예외를 발생시키는 것은 매우 편리합니다.
리스트의 길이가 3 이하일 때만 리스트 요소의 합을 반환하는 함수
get_sum를 만들어 봅시다.
그렇지 않은 경우, 우리가 정의한 예외 ToBigLength가 발생하도록 합니다:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
이제 get_sum 함수에 리스트를 전달하고 결과를 콘솔에 출력해 봅시다:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # 6을 출력합니다
함수 내에서 여러 유형의 예외를 처리하도록 설정할 수도 있습니다.
또 다른 예외 클래스 ToSmallLength를 만들어 봅시다:
class ToSmallLength(Exception):
pass
이제 함수에 조건을 추가합니다: 리스트의 길이가 0이면
ToSmallLength가 발생하도록 합니다.
어떤 예외도 발생하지 않으면 리스트의 모든 요소 합계를 반환합니다:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
편의를 위해 함수 매개변수로 전달될 리스트, 함수 자체,
그리고 함수 호출을 try 블록으로 묶을 수 있습니다.
우리가 정의한 두 예외 처리는 except 블록에 배치합니다:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
숫자를 매개변수로 받는 함수를 만드세요.
함수 내에 조건을 작성합니다: 숫자가 음수이거나 0인 경우
해당 예외가 발생하도록 합니다.
그렇지 않으면 숫자에 3을 곱하세요.
try-except 구문을 사용하여 생성한 함수의 작동을 확인하세요.
이때 정의한 예외도 처리하세요.