ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 77 - (파이썬) 예외 강제 발생
    study with Q - 파이썬 2024. 8. 21. 18:40

    # raise 구문

    : 다음과 같은 3가지 형태로 예외를 강제로 발생시킬 수 있다.

    • raise 예외객체
    • raise 예외객체() - aka 생성자
    • raise 예외객체(메세지)
    raise Exception("예외를 강제로 발생시킵니다.")
    >>>
    Exception: 예외를 강제로 발생시킵니다.

     

    근데... 예외를 왜 강제로 발생시켜요...? → 다른 개발자에게 '정보'를 전달하기 위해서

     

    # 활용 예1) 미구현 상태인 정보 전달하기

    코드의 범위가 큰 경우, pass 만으로는 코드가 제대로 실행되고 있는지 확인하기 어려운 경우가 있음

    number = input("판별할 정수를 입력하세요> ")
    number = int(number)
    
    if number > 0:
      print("입력할 정수는 양수입니다.")
    elif number == 0:
      raise Exception("나중에 잊지말고 구현하슈")
    else:
      raise Exception("나중에 잊지말고 구현하슈.")

     

    양수가 아닌 수를 입력하면 메세지가 나오면서 나중에 구현해야 하는 부분임을 알 수 있다. 

     

    특히, 구현 전이라는 메세지는 NotImplementedError라고 명시적으로 나타내는 예외객체가 있어서 이것을 사용하면 구현되지 않은 곳을 코드 검색을 통해 빨리 찾을 수도 있다. 

     

    요렇게

    number = input("판별할 정수를 입력하세요> ")
    number = int(number)
    
    if number > 0:
      print("입력할 정수는 양수입니다.")
    elif number == 0:
      raise NotImplementedError("나중에 잊지말고 구현하슈")
    else:
      raise NotImplementedError("나중에 잊지말고 구현하슈.")

     

    # 활용 예2) 이러면 안 된다 알려주기

    def 사각형의넓이(너비, 높이):
      if 너비 <=0 or 높이 <= 0:
        raise ValueError("앙수로 입력하시오.")
      return 너비*높이
    
    print(사각형의넓이(6, 3))
    >>> 18
    
    def 사각형의넓이(너비, 높이):
      if 너비 <=0 or 높이 <= 0:
        raise ValueError("앙수로 입력하시오.")
      return 너비*높이
    
    print(사각형의넓이(-2, 3))
    >>> 
    ValueError: 앙수로 입력하시오.

     

Designed by Tistory.