Python에서 예외를 발생시키는 함수

조건문을 사용하여 함수 내에서 예외를 발생시키는 것은 매우 편리합니다.

리스트의 길이가 3 이하일 때만 리스트 요소의 합을 반환하는 함수 get_sum를 만들어 봅시다. 그렇지 않은 경우, 우리가 정의한 예외 ToBigLength가 발생하도록 합니다:

pythondef get_sum(lst):
  if len(lst) <= 3:
    return sum(lst)
  else:
    raise ToBigLength

이제 get_sum 함수에 리스트를 전달하고 결과를 콘솔에 출력해 봅시다:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # 6을 출력합니다

함수 내에서 여러 유형의 예외를 처리하도록 설정할 수도 있습니다. 또 다른 예외 클래스 ToSmallLength를 만들어 봅시다:

pythonclass ToSmallLength(Exception):
  pass

이제 함수에 조건을 추가합니다: 리스트의 길이가 0이면 ToSmallLength가 발생하도록 합니다. 어떤 예외도 발생하지 않으면 리스트의 모든 요소 합계를 반환합니다:

pythondef get_sum(lst):
  if len(lst) > 3:
    raise ToBigLength
  if len(lst) == 0:
    raise ToSmallLength
  else:
    return sum(lst)

편의를 위해 함수 매개변수로 전달될 리스트, 함수 자체, 그리고 함수 호출을 try 블록으로 묶을 수 있습니다. 우리가 정의한 두 예외 처리는 except 블록에 배치합니다:

pythontry:
  lst = [1, 2, 3]
  res = get_sum(lst)
  print(res)
except ToBigLength:
  print('error 1')
except ToSmallLength:
  print('error 2')
Задание 1

숫자를 매개변수로 받는 함수를 만드세요. 함수 내에 조건을 작성합니다: 숫자가 음수이거나 0인 경우 해당 예외가 발생하도록 합니다. 그렇지 않으면 숫자에 3을 곱하세요.

Задание 2

try-except 구문을 사용하여 생성한 함수의 작동을 확인하세요. 이때 정의한 예외도 처리하세요.