기본미션 : 구문 오류와 예외의 차이 설명하기(p. 379 1번 문제)
선택미션 : p. 381 3번 문제 풀고 인증하기
: 괄호의 개수, 들여쓰기 문제 등으로 프로그램이 실행되기도 전에 발생하는 오류
구문 오류가 있는 코드를 실행할 경우, SyntaxError
라는 단어가 나온다.
SyntaxError
: 구문에 문제가 있어 프로그램이 실행조차 되지 않는 오류
구문 오류는 해결하지 않으면 프로그램 자체가 실행되지 않는다.
위의 예시를 보면 프로그램이 시작되었습니다!
라는 문구조차도 나오지 않는 모습을 볼 수 있다.
따라서 코드를 제대로 수정해야 한다.
: 예외 또는 런타임 오류는 실행 중에 발생하는 오류를 의미
예외가 일어난 경우에는 일단 프로그램이 실행된다.
위의 예시를 보면 프로그램이 시작되었습니다!
라는 문구가 출력된 후에 예외 메시지가 나온 것을 확인할 수 있다.
이처럼 실행 중에 오류가 발생했다면 이것이 바로 예외
또는 런타임 오류
이다.
예외를 해결하는 방법 또한 구문 오류와 다르지 않게 코드를 제대로 작성해도 해결할 수 있지만
실행 중에 발생하는 오류이므로 try except
구문으로도 처리할 수 있다.
vs
예외 정리정리하자면
구문오류
: 문법적인 오류로 프로그램이 실행조차 되지 않게
만드는 오류
try except
구문 등으로 처리 가능
예외
: 프로그램이 실행 중
에 발생하는 오류
try except
구문 등으로 처리 불가능
이 되는 것이다.
p. 381 3
번 문제 풀고 인증하기output = 10 + "개"
예외
: 문법적인 오류는 없기 때문에 실행하며 예외
가 나타날 것TypeError
: 정수와 문자열을 더하고 있기에 TypeError
가 발생할 것int("안녕하세요")
예외
: 문법적인 오류는 없기 때문에 실행하며 예외
가 나타날 것ValueError
: int()
에 문자열과 같은 올바르지 못한 값을 넣었기 때문cursor.close)
구문 오류
: (
가 하나 부족한 문법적인 오류가 있기에 구문 오류
가 나타날 것SyntaxError
: 구문 오류가 나타나면 항상 앞에는 SyntaxError
라는 메시지가 나타나기 때문[1, 2, 3, 4, 5][10]
예외
: 문법적인 오류는 없기 때문에 실행하며 예외
가 나타날 것IndexError
: 실질적인 값을 저장할 변수명이 없는데 인덱스만이 존재하기 때문