공부/Python

[Python 기초] 예외처리 (try, except)

tea_pixel 2024. 8. 25. 12:00
반응형

 

11. 예외처리 (try, except)

try : 기본 수행 문장들 입력
except : 문제가 발생하면 수행할 문장을 입력

기본 구조

try:
    실행 문장1
    실행 문장2
except:
    실행 문장a
    실행 문장b

 

예제

# 예외 처리

def div(a,b):
    return a/b

div(1,0)
# 0으로 나눴기때문에 에러가 발생
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-2-e8564b965c01> in <cell line: 1>()
----> 1 div(1,0)

<ipython-input-1-31a77414021a> in div(a, b)
      1 def div(a,b):
----> 2     return a/b

ZeroDivisionError: division by zero

if문을 통해 문제 상황에 대해 개별적으로 설정할 수 있지만, 에러 전체에 대해 대응할 때는 예외처리가 유용함

# 방법 1 if문 활용해 개별처리
def div(a,b):
    if b == 0:
        return '계산식 표현 불가'
    else:
        return a/b
div(1,0)
# 결과 : '계산식 표현 불가'


# 방법 2 try, except 활용
def div(a,b):
    try:
        return a/b
    except:
        return '계산식 표현 불가'
div(1,0)
# 결과 : '계산식 표현 불가'

 

특정 오류에 대한 예외 처리

 

앞서 0으로 나눈 경우에 발생한 에러 메세지를 보면 ZeroDivisionError라는 것을 볼 수 있다.

Error 종류에 대해 특정지어 예외 처리가 가능함.

def div(a,b):
    try:
        return a/b
    except ZeroDivisionError:
        return '계산식 표현 불가'
div(1,0)

# 결과 : 계산식 표현 불가

def div(a,b):
    try:
        return a/b
    except ZeroDivisionError as Error1 :
        return '{}로 인한 계산식 표현 불가'.format(Error1)
div(1,0)

# 결과 : division by zero로 인한 계산식 표현 불가

 

Ref

 

렛유인 - 파이썬 데이터 분석 - 기초이론

렛유인 - 파이썬 데이터 분석 - 전처리&시각화

728x90