한 걸음씩 기록하며

#.13 Error & Exceptions (예외처리) 본문

Python

#.13 Error & Exceptions (예외처리)

Haksae 2021. 12. 22. 15:20

1. 파이썬의 예외 종류

  • 문법적 에러는 통합 프로그램에서 많이 잡아준다.
  • linter : 코드 스타일, 문법을 체크해주는 시스템
  • 코드 실행(런타임) 프로세스에서 발생되는 에러
  • 예외 종류
  • SyntaxError : 잘못된 문법
  • NameError : 참조변수 없음
  • ZeroDivisionError : 0 나누기 에러 (런타임 뒤에 발생)
  • IndexError : 인덱스 범위 오버
  • KeyError : 딕셔너리에서 나는 에러 get ()를 활용하면 안뜬다.
  • AttributeError : 모듈, 클래스에 있는 잘못된 속성 사용시에 예외
  • ValuError : 참조 값이 없을 때 발생
  • FileNotFoundError : 외부 파일을 사용할 때 발생하는 에러
  • TypeError : 타입 간에 나는 에러 (형 변환 해야함)
  • 항상 예외가 발생하지 않을 것으로 가정하고 먼저 코딩
  • 그 후 런타임 예외 발생시 예외 처리 코딩 권장 (EAFP 코딩 스타일)

2. 예외 처리 기본

  • try : 에러가 발생할 가능성이 있는 코드 실행
  • except : 에러명1
  • except : 에러명2
  • else : 에러가 발생하지 않았을 경우 실행
  • finally : 항상 발생
  • 예제 1
name = ['kim','lee','park']

try :
    z = 'cho'
    x = name.index(z)
    print('{} Found it! in name'.format(z, x+1))
except ValueError :
    print('Not found it! - Occurred Value Error!')
except IndexError :
    print('Not found it! - Occurred Index Error!')
except Exception : #그냥 except만 써도 된다. 그러나 Exception이 모든 것을 포괄
    print('Not found it! - Occurred Error!')

else : #정상실행 경우
    print('Ok! else!')
finally : #무조건적인 수행
    print('finally OK!')
  • 예제2 : 종종 이렇게로도 함
  • try : print('try') finally : print('Ok finally!')
  • 예제 3 : raise 키워드를 통해서 직접 예외 규정
#예제 3 : raise 키워드로 예외 직접 발생]
#프로그래머가 직접 규정해

try :
    a = 'cho'
    if a == 'kim' :
        print('ok 허가')
    else :
        raise IndexError
except IndexError :
    print('문제 발생')
except Exception as f :
    print(f)

else :
    print('ok!')

'Python' 카테고리의 다른 글

#. 타이핑 게임  (0) 2021.12.22
#.12 Module, Package  (0) 2021.12.22
#.11 Class  (0) 2021.12.22
#.10 Object(객체)에 대하여  (0) 2021.12.22
#.9 객체지향 프로그래밍 (OOP)  (0) 2021.12.22
Comments