기록하는 습관

[Python] 예외처리 : try ~ excpet 구문 본문

Python

[Python] 예외처리 : try ~ excpet 구문

Avalla 2023. 8. 16. 17:54

try ~ except

for i in [2,0,'-2'] :
    try :
        print(4/i)
    except :
        print('Error')
2.0
Error
Error

 

try ~ except ~ as

에러 구문을 확인하고 싶을 떄

for i in [2,0,'-2'] :
    try :
        print(4/i)
    except Exception as e:
        print(e)
2.0
division by zero
unsupported operand type(s) for /: 'int' and 'str'

 

try ~ except ~ else

에러가 나지 않았을 때 else 구문을 실행

List = [2,0,'-2','A']
for i in range(5) :
    print(f"_____{i} START_____")
    try :
        result = 4/int(List[i])
        print("▶ result 업데이트")
    except Exception as e:
        print('에러 :', e)
    else :
        print(f"현재 i : {i}, result : {result}")
_____0 START_____
▶ result 업데이트
현재 i : 0, result : 2.0
_____1 START_____
에러 : division by zero
_____2 START_____
▶ result 업데이트
현재 i : 2, result : -2.0
_____3 START_____
에러 : invalid literal for int() with base 10: 'A'
_____4 START_____
에러 : list index out of range

위 예시와 비교

List = [2,0,'-2','A']
for i in range(5) :
    print(f"_____{i} START_____")
    try :
        result = 4/int(List[i])
        print("▶ result 업데이트")
    except Exception as e:
        print('에러 :', e)
    print(f"현재 i : {i}, result : {result}")
_____0 START_____
▶ result 업데이트
현재 i : 0, result : 2.0
_____1 START_____
에러 : division by zero
현재 i : 1, result : 2.0
_____2 START_____
▶ result 업데이트
현재 i : 2, result : -2.0
_____3 START_____
에러 : invalid literal for int() with base 10: 'A'
현재 i : 3, result : -2.0
_____4 START_____
에러 : list index out of range
현재 i : 4, result : -2.0

 

try ~ except ~ finally

finally는 없어도 위와 결과가 같음

List = [2,0,'-2','A']
for i in range(5) :
    print(f"_____{i} START_____")
    try :
        result = 4/int(List[i])
        print("▶ result 업데이트")
    except Exception as e:
        print('에러 :', e)
    finally :
        print(f"현재 i : {i}, result : {result}")
_____0 START_____
▶ result 업데이트
현재 i : 0, result : 2.0
_____1 START_____
에러 : division by zero
현재 i : 1, result : 2.0
_____2 START_____
▶ result 업데이트
현재 i : 2, result : -2.0
_____3 START_____
에러 : invalid literal for int() with base 10: 'A'
현재 i : 3, result : -2.0
_____4 START_____
에러 : list index out of range
현재 i : 4, result : -2.0

 

Built-in Exception

IndexError : Index 범위 에러

NameError : 존재하지 않는 변수일 경우

ZeroDivisionError : 0으로 수를 나눌 때

ValueError : 타입에 관한 에러

FileNotFoundError : 존재하지 않는 파일 호출

for i in [2,0,'-2'] :
    try :
        print(4/i)
    except ZeroDivisionError :
        print('ZeroDivisionError')
    except :
        print('Error : 미리 분류해두지 않은 에러')
2.0
ZeroDivisionError
Error : 미리 분류해두지 않은 에러
List = [2,0,'-2','A']
for i in range(5) :
    print(f"_____{i} START_____")
    try :
        result = 4/int(List[i])
        print("▶ result 업데이트")
        print(f"현재 i : {i}, result : {result}")
    except ZeroDivisionError as z:
        print('ZeroDivisionError :', z)
    except ValueError as v:
        print('ValueError :', v)
    except IndexError as I :
        print('IndexError :', I)
    except Exception as e:
        print('미리 분류해두지 않은 에러 :', e)
_____0 START_____
▶ result 업데이트
현재 i : 0, result : 2.0
_____1 START_____
ZeroDivisionError : division by zero
_____2 START_____
▶ result 업데이트
현재 i : 2, result : -2.0
_____3 START_____
ValueError : invalid literal for int() with base 10: 'A'
_____4 START_____
IndexError : list index out of range

'Python' 카테고리의 다른 글

[Python] is 와 == 의 차이  (1) 2023.08.03