240624 TIL #433 Exception

김춘복·2024년 6월 23일
0

TIL : Today I Learned

목록 보기
433/543
post-custom-banner

Today I Learned

오늘은 파이썬의 예외처리에 대해서 배웠다.


Exception

  • 예외는 발생여부를 사전에 인지할 수 있는 예외와 예상이 불가능한 예외가 있다.

  • 예외가 발생할 경우 잘못된 상황에 대비해서 Exception Handling이 필요하다.

  • Built-in Exception(파이썬 기본 제공 예외)

예외 이름설명
ZeroDivisionError0으로 나눌 때 발생하는 예외.
ValueError연산이나 함수에 잘못된 값이 들어왔을 때 발생하는 예외.
TypeError연산이나 함수에 잘못된 타입의 객체가 들어왔을 때 발생하는 예외.
IndexError시퀀스 인덱스가 범위를 벗어날 때 발생하는 예외.
KeyError딕셔너리에서 존재하지 않는 키를 접근하려 할 때 발생하는 예외.
AttributeError존재하지 않는 속성을 참조하려 할 때 발생하는 예외.
FileNotFoundError파일을 찾을 수 없을 때 발생하는 예외.

파이썬 예외처리 문법

  • try ~except (~else ~finally)
try:
	# 예외 발생코드
except <Exception Type>:
	# 예외 발생 시 대응 코드
else:
	# 예외가 발생하지 않을때 동작하는 코드. else는 없어도 된다.
finally: 
	# 예외 여부와 상관없이 실행되는 코드
    
# 0으로 나눌 때 예외 처리 예시
try:
    # 예외가 발생할 수 있는 코드
    result = 10 / int(input("숫자를 입력하세요: "))
except ZeroDivisionError as e:
    # ZeroDivisionError 예외가 발생했을 때 실행되는 코드
    print(e)
    print("0으로 나눌 수 없습니다.")
except ValueError:
    # ValueError 예외가 발생했을 때 실행되는 코드
    print("유효한 숫자를 입력하세요.")
else:
    # 예외가 발생하지 않았을 때 실행되는 코드
    print(f"결과: {result}")
finally:
    # 예외 발생 여부와 상관없이 항상 실행되는 코드
    print("프로그램이 끝났습니다.")
  • raise : 필요에 따라 명시적으로 exception 발생
# raise <Exception Type>(예외메시지)
raise ValueError("유효하지 않은 값입니다")
  • assert

    assert 문은 디버깅 목적으로 조건이 참인지 확인하는 데 사용된다.
    조건이 거짓이면 AssertionError 예외를 발생시킨다.
    주로 코드의 특정 상태를 가정할 때 그 가정이 유지되는지 확인하기 위해 사용된다.

# assert 조건, 메시지
assert 2 + 2 == 5, "2와 2의 합은 5가 아닙니다."

profile
Backend Dev / Data Engineer
post-custom-banner

0개의 댓글