기본 미션) 구문 오류와 예외의 차이 설명하기(p.291 1번 문제)
구문 오류(Syntax Error) | 예외(Exception), 런타임 오류(Runtime Error) |
-프로그램 실행 전 발생, 실행 자체가 안됨. -문법적인 오류 -코드를 제대로 수정해야 프로그램이 실행됨. |
-프로그램 실행 중에 발생 -조건문으로 기본 예외 처리 가능 -try, except 구문과 같이 예외 처리에 특화된 구문 사용 가능 |
선택 미션) p.293 3번 문제 풀고 인증샷
1. output = 10 + "개"
예외이고 TypeError라고 생각했는데 답지에 ValueError라고 나와있음.
그래서 무슨 차이인지 알아보았음.
ValueError | TypeError |
-부적절한 값을 가진 인자를 받았을 때 발생하는 에러 | -잘못된 타입을 전달했을 때 발생하는 에러 |
int형과 str형은 +로 할 수 없기 때문에 TypeError같음.
2. int("안녕하세요")
예외이고 ValueError. int형 인자가 와야 하는데 문자열이 들어가 있기 때문.
3. cursor.close)
구문 오류이고 SyntaxError. 맞게 고치면 cursor.close() 가 되어야 함.
4. [1, 2, 3, 4, 5][10]
예외이고 IndexError. IndexError는 인덱스 범위를 벗어나는 경우에 발생하는 에러이다.
[1,2,3,4,5]는 [0]부터 [4]까지이므로 해당 범위를 벗어남.