본문 바로가기

Study/Python

#10_Python_1예외처리:구문오류와 예외, 예외 처리 방법

01 구문오류와 예외
02 예외 처리 방법
03 예외 객체
04 강제로 예외를 발생시키는 방법


프로그램을 작성하다보면 탐정이 되어야 할 때가 있다.

에러가 발생했을때

코드를 하나씩 잘 살펴 보아야 한다.

 

오류의 종류는 구문오류 : 해석 단계에서 발생 / 예외(exception) : 실행 단계에서 발생

오류를 빠르게 확인하기 위해서는 오류메시지가 어떤 메시지를 출력하고 있는지 잘 확인해야 한다!

파이썬에서 발생하는 구문 오류와 예외의 종류를 알아보고

예외 처리 방법을 익혀 안전하고 견고한 프로그램을 만들어 보자


#01 구문오류와 예외

 

01_구문오류

프로그램을 만들때 잘못된 명령을 입력해 발생함

SyntaxError : EOL while scanning string literal
# 파이썬 인터프리터가 해석하지 못해 발생함

오타나 문법적으로 필수적인 요소가 빠지진 않았는지 찾아 재코딩해야 함

 

02_예외(exception)

문법적인 문제는 없는데 실행 중에 예기치 않게 발생함

예외가 발생했을때 처리하지 않으면 프로그램이 끝나버리기 때문에 안전하게 처리해야 함

data_list = [10, 20, 30] # 사용 가능한 인덱스 : 0부터 2까지

print(data_list[0])
print(data_list[1])
print(data_list[2])
print(data_list[3])

# [결과]
# 10
# 20
# 30
# Traceback (most recent call last):
#	File "C:/Users/ai/PycharmProjects/PythonPrograming/Lab10/10-02.py", line 6, in <module> print(data_list[3]
# IndexError : list index out of range

사용한 리스트의 인덱스가 범위를 벗어났다는 오류 메시지 출력


#02 예외 처리 방법

 

01_예외 발생 시 해결 방법

 

 📍if 문을 이용한 예외의 처리

    -> 정상적인 흐름을 제어할 경우에만 사용 가능, 예외처리 전용 메커니즘이 필요할 수가 있음

출처 : swea

isdigit() 함수 : 숫자 문자의 경우 True / 문자열이 입력된 경우 False 반환

 

 📍try ~ except 문을 이용한 예외의 처리

    -> 예외가 발생했을 때 처리

출처 : swea

 📍try ~ except ~ else 문을 이용한 예외의 처리

    -> 예외가 발생했을 때 처리 , 예외가 발생하지 않았을때를 나누어 처리할 수 있음

출처

 

 📍try ~ except ~ else ~ finally 문을 이용한 예외의 처리

    -> 예외가 발생했을 때 처리 , 예외가 발생하지 않았을때를 나누어 처리하고 예외 발생과 상관없이 실행되는 코드를 작성할 수 있음

출처 : swea
출처 : swea