Developer's Development

3.1.6 [Python] 예외 본문

프로그래밍과 데이터 기초/PYTHON

3.1.6 [Python] 예외

mylee 2025. 7. 2. 17:14
예외 (Exception)

 

문장이나 표현식이 올바르다 할지라도 프로그램이 실행되는 동안 발생하는 예상치 못한 오류이다. 예를 들어, 사용자가 입력한 값을 숫자로 변환하려고 했는데 그 값이 문자일 경우, 프로그램이 정상적으로 실행되지 못하고 오류가 발생한다.

이처럼 예외는 프로그램이 계획대로 동작하지 않게 만드는 상황을 말하며, 이러한 예외를 적절하게 처리하지 않으면 프로그램이 갑자기 중단될 수 있다. 따라서 프로그램 코드 작성 시 이런 오류 상황을 예측하고, 프로그램이 안전하게 계속 실행될 수 있도록 예외 처리를 해줘야 한다.

 

  • 예외 발생

특수한 경우에만 예외를 발생시키고 처리할 목적으로 예외를 만들어서 사용하기도 한다.

python 내장 클래스인 Exception 클래스를 상속하여 만들 수 있다.

class MyError(Exception):
	{에러 객체 내용)

 

  • 예외 처리 기본 문법

예외 처리는 기본적으로 try-except 구조로 작성한다.

try 블럭 안에는 실행할 코드를, except 블럭 안에는 try 블럭 안에서 실행하는 코드에서 예외 발생 시 동작할 코드를 작성하면 된다.

try:
	(실행할 코드)
except:
	(모든 예외 발생 시 동작할 코드)
    
# 특수 예외 상호아에 대한 오류 변수를 사용한 처리
try:
	(실행할 코드)
except 오류2 as 오류변수2:
	(오류2 발생 시 동작할 코드)
    (블럭 내부에서 오류2에 대한 내용을 오류변수2로 참조하여 사용 가능)

 

  • 예외 처리 추가 문법

finally

: try 블럭 뒤에 붙여 사용할 수 있으며, finally 블럭 내부의 코드는 예외 발생 여부와 상관 없이 항상 수행된다.

else

: try문 수행 중 오류가 발생하면 excep t절, 오류가 발생하지 않으면 else 절이 수행된다.

pass

: try문 안에서 error가 발생할 경우, pass를 사용하여 오류를 그냥 회피하도록 작성할 수 있다.

idx_num = int(input('인덱스 번호를 입력하세요: '))
div_num = int(input('나누는 수를 입력하세요: '))

date_list = [2025, 7, 2]

try:
    print(date_list[idx_num])
    print(date_list[1] / div_num)
except IndexError as e:
    print('리스트에 없습니다 그런건')
    print(e)  #list index out of range
except ZeroDivisionError:
    print('왜 0으로 나누시는데요')
except:
    print("뭘 한거야!! (그 외 모든 에러)")
else:
    print("배고프다.... (try 구문 내 코드 정상 작동)")
finally:
    print("집에 가고싶다.... (언제나 작동)")

'프로그래밍과 데이터 기초 > PYTHON' 카테고리의 다른 글

3.1.14 [Python] 크롤링  (5) 2025.07.08
3.1.7 [Python] Streamlit  (5) 2025.07.02
3.1.5 [Python] 모듈&패키지, 파일 IO  (0) 2025.07.01
3.1.4 [Python] 클래스  (1) 2025.06.30
3.1.3 [Python] 함수  (2) 2025.06.27