Python

Python – 예외 처리(except)와 가정 설정문 (assert)

  • 예외 처리
    • 프로그램 내의 예기치 못한 오류가 발생 시 프로그래머가 예외 발생을 대처하기 위해 작성하는 코드
  • 예외 처리 사용
won = input("원화 입력")
dollar = input("환율 입력")

try:
    print(int(won)/int(dollar))
except TypeError as e:
    print("타입 에러 발생", e)
except ZeroDivisionError as e:
    print("0으로 나눌수없음", e)
except ValueError as e:
    print("값이 잘못됨", e)
except Exception as e:
    print("기타 예외 발생", e)
else:
    print("예외 미발생")
finally:
    print("마지막에 항상 실행")
  • 예외 처리 생성
class PositiveNumberError(Exception):
    def __init__(self) -> None:
        super().__init__("양수 입력 불가 >>> ")

try:
    num = int(input("음수를 입력하세요"))
    if num >= 0:
        raise PositiveNumberError
except PositiveNumberError as e:
    print("에러 발생", e)
  • 예외 처리 강제 (raise)
try:
    num = int(input("음수를 입력해주세요 >>> "))
    if num >= 0:
        raise ValueError("양수는 입력불가")
except ValueError as e:
    print("에러 발생", e)
  • 가정 설명법 (assert)
    • 예외 처리와 비슷, 조건에 대해 bool 값을 받아 참일 경우 통과, 그렇지 않을 경우 AssertionError와 함께 프로그래머가 작성한 메세지를 출력하는 형식
lists = [-1,0,1,2]
def minus(n):
    assert n<0, '음수만 지나갈 수 있습니다.'

for i in lists:
    minus(i)
AssertionError: 음수만 지나갈 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.