한 걸음씩 기록하며
#.13 Error & Exceptions (예외처리) 본문
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