본문 바로가기
Programming 개발은 구글로/Python

[파이썬] 에러 및 예외 처리

by 40대직장인 2022. 3. 25.

파이썬 에러 및 예외 처리

 

문법적으로 에러가 없지만, 코드 실행(런타임) 프로세스에서 발생하는 예외 처리도 중요함.

 

linter: 소스 코드를 분석해 오류나 오타, 잠재적인 버그를 찾아주는 도구이다.

 

# 예외 종류

 - SyntaxError: 문법 오류

 - NameError: 참조 변수가 없는 경우 발생

 - ZeroDivisionError: 0으로 나누는 경우 발생

 - IndexError(Index out of range): 인덱스 범위 Over

 - KeyError: 정의되지 않은 Key 조회 시 발생

 - AttributeError: Module, Calss 잘못된 속성 사용 시 발생

 - ValueError : 참조값이 없는 경우 발생

 - FileNotFoundError: no serarch file or directiory(외부 파일 처리)

 - TypeError: 형 변환 오류

 

예외 처리에 적합한 EAFP 코딩 스타일을 기본으로 한다.

 

LBYL(Look Before Your Leap) 코딩 스타일

 : 뛰기 전에 살펴보라: 어떤 작업 전에 확인을 거치는 코딩 스타일

def test_code():
    if applycode(): // 확인
      
    else:

 

EAFP(Easier to Ask fro Forgiveness than Permission) 코딩 스타일

 : 항상 예외가 발생하지 않을 것으로 가정하여 먼저 코딩을 하고, 그 후 문제가 발생하면 예외 처리한다는 코딩 스타일

def test_code
...
    try:
    ...
    except:
    ...
    else:
    ...
    finally:
    ...

 

 - try문은 실행할 코드, 에러가 발생할 가능성이 있는 코드를 기입한다.

 - except(except Exception) 문은 예외처리를 통해 에러가 발생할 때의 대비책을 만들어준다.

 - else문은 에러가 발생하지 않을 경우 실행된다.

 - finally문은 항상 실행된다.

 

자주 사용되는 코딩 스타일

 : 예외 처리는 하지 않고 무조건 수행되는 코딩 스타일

try:
finally:

 

raise

 : 직접 예외가 발생이 되도록 설정

try:
    a = 'Kang'
    if a == 'kang':
        ...
    else:
       raise valueError

 

 

댓글