Data/Python

[Python 문법] 오류 처리

gangmin 2024. 4. 9. 13:40

파이썬은 타입 오류, 연산 오류 등 다양한 오류가 발생할 수 있다. 오류를 처리하기 위해서 try - except 문법을 활용할 수 있다.

x = 5
y = 'Hello'

try:
    z = x + y
except TypeError:
    print("Error : cannot add an int and a str")

오류 발생 핸들링

except 구문에서 오류 타입에 따른 다양한 처리를 할 수 있다. 다음 예시를 확인해보면, 오류 타입에 따라서 프린트 내부 문자열을 변경할 수 있게 된다.

def fun(a):
    if a < 4:
        b = (a / (a - 3))
    print("Value of B = ", b)
    
try:
    fun(3)
    fun(5)
except ZeroDivisionError:
    print("ZeroDivisionError Occurred and Handled")
except NameError:
    print("NameError Occurred and Handled")

오류 구문 후 처리

오류가 발생하지 않는 경우에 추가적인 작업을 수행하도록 하는 문법도 존재한다. if 구문을 활용하는 것처럼 else 예약어를 사용하여서 추가적인 작업을 수행할 수 있다.

def abyB(a, b):
    try:
        c = ((a + b) / (a - b))
    except ZeroDivisionError:
        print("a / b result in 0")
    else:
        print(c)
        
abyB(2.0, 3.0)
abyB(3.0, 3.0)

오류가 발생 여부와 상관 없이 항상 실행되는 구문을 추가하는 finally 예약어도 제공한다.

try:
    k = 5 // 0
except ZeroDivisionError:
    print("Can not divide by zero")
finally:
    print("This is always executed")