파이썬: Exception

Ohback·2024년 12월 26일

1. 예외(Exception)

예외란 프로그램 실행 중에 발생하는 오류로, try-except문을 통해 갑작스런 프로그램 중단을 막아줄 수 있다.

1-1. try-except

# (1) 모든 상황에 대한 처리
try:
    4 / 0
except:
    print("오류 발생")
# (2) 특정 상황에 대한 처리
try:
	4 / 0
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
# (3) 오류 변수를 주어 오류 내용 출력
try:
    4 / 0
except ZeroDivisionError as e:
    print(e)	# division by zero

1-2. try-finally

try:
    f = open('foo.txt', 'w')

finally:
    f.close()  # 중간에 오류가 발생하더라도 무조건 실행

1-3. raise 오류 발생시키기

raise는 의도적인 오류 발생이 필요할 때 쓰는 구문으로 발생시키고 싶은 에러와 문자를 같이 보여줄 수 있다.

1-4. if-else vs try-except

예외처리 구문을 배워보니 if-else와 형태가 많이 닮아 헷갈리는 부분이 있었다. if-else는 숫자 연산처럼 값이 True 혹은 False로 조건을 테스트 할 때 사용하고, try-except는 input을 통해 입력받는 값의 오류처럼 테스트 할 수 없는 에러나 언어 규칙 위반 등을 인지하여 프로그램을 계속 진행시키도록 한다.
한마디로 if-else는 오류를 방지하는 구문, try-except는 프로그램 실행 중의 오류를 잡고 핸들링하는 구문이다.

🔽아래는 if-else와 try-except의 비교를 위해 작성한 코드

# if-else

num = int(input("숫자를 입력하세요: "))
if num != 0:
    print(10 / num)
else:
    print("0으로 나눌 수 없습니다.")

# 문자 입력했을 때 ValueError 발생
# try-except

try:
    num = int(input("숫자를 입력하세요: "))
    print(10 / num)
except ValueError:
    print("숫자만 입력 가능합니다.")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
    
# 문자 입력했을 때, "숫자만 입력 가능합니다." 출력


예외 참고자료1 https://wikidocs.net/
예외 참고자료2 https://blockdmask.tistory.com/

profile
기록은 기억을 지배한다.

0개의 댓글