[패스트캠퍼스python] 예외처리
파이썬 인강 : 예외처리
완벽한 코딩은 없다. 여러 사람이 함께 작업한다한들 예외는 언제든지 나타날수있다
만약 미세한 코딩으로인해 수백명이 결제하는 회사 시스템에 예외가 발생해버린다면 그 손해는 막심할 것이다.
1. 예외 종류
- SyntaxError
- TypeError
- NameError
- IndexError
- ValueError
- KeyError.. 등등
요즘은 문법적으로 에러는 없지만 코드 실행(런타임) 프로세스에서 발생하는 예외 처리가 중요하다
에디터에서 linter가 문법적인 에러를 잡아주기때문에 걱정없지만 런타임에서 발생하는 에러에 주의해야한다
항상 예외가 발생하지 않을 것으로 가정하고 먼저 코딩
그 후 런타임 예외 발생 시 예외처리 권장(EAFP 코딩 스타일)
1. SyntaxError : 잘못된 문법
문법적인 에러는 보통 linter가 잡아준다
1 | print('test) # ' 누락 |
2. NameError : 참조 변수 없음
1 | a = 10 |
3. ZeroDivisionError : 0 나누기 에러
모든 언어에 있는 에러이고 런타임에서 발생하는 에러이기에 중요하다
1 | print(10 / 0) |
4. IndexError : 인덱스 범위 오버
자주 발생하는 에러
1 | x = [10, 20, 30] |
5. KeyError
주로 딕셔너리에서 나오는 에러이다
1 | dic = {'name': 'Kim', 'Age': 33, 'City': 'Seoul'} |
이런 에러를 방지하기 위해 get매서드를 사용하면 좋다
1 | print(dic.get('hobby')) # 안전 |
6. AttributeError : 모듈, 클래스에 있는 잘못된 속성 사용시에 예외
1 | x = [1, 2, 3] |
출력값은
list는 add가 없기에 AttributeError발생한다
7. ValueError : 참조 값이 없을 때 예외
1 | t = (10, 100, 1000) |
8. FileNotFoundError
외부파일을 불러와서 처리할때 자주 발생
터미널에 보면 디렉토리 내에 찾을 수 없다고 나온다
9. TypeError : 자료형에 맞지 않는 연산을 수행 할 경우
1 | x = [1, 2] |
2. 예외 처리 기본
아래 예외 처리는 기본중의 기본이므로 꼭 알아둬야한다.
1 | try 에러가 발생 할 가능성이 있는 코드 실행 |
이를 활용한 예시
1 | try: |