프로그래밍 언어에는 크게 두 가지 종류의 오류가 있다.
- 프로그램 실행 전에 발생하는 오류
- 프로그램 실행 중에 발생하는 오류
프로그램 실행 전에 발생하는 오류를 구문 오류, 프로그램 실행 중에 발생하는 오류를 예외 또는 런타임 오류라고 한다.
구문 오류
괄호를 닫지 않거나 문자열을 닫지 않는 등이 구문 오류에 해당한다.
구문 오류가 발생하면 웹 브라우저가 코드를 분석할 수 없으므로 프로그램이 실행되지 않는다.
JavaScript에서 SyntaxError로 출력되는 오류가 구문 오류에 해당한다.
구문 오류는 웹 브라우저가 어느 위치의 어떤 부분이 문제인지 구체적으로 알려주므로 이를 수정함으로써 해결할 수 있다.
예외
console.log를 console.rog로 작성하는 등이 예외에 해당한다
예외가 발생하면 예외가 발생하기 직전까지는 프로그램이 정상적으로 실행된다.
JavaScript에서 SyntaxError로 출력되는 오류 외의 모든 오류는 예외에 해당한다.
예외는 조건문 또는 try catch finally 구문으로 해결할 수 있다.
기본 예외 처리
<script>
document.addEventListener('DOMContentLoaded', () => {
const h1 = document.querySelector('h1')
h1.textContent = '안녕하세요'
})
</script>
<body>
</body>
> Uncaught TypeError TypeError: Cannot set properties of null (setting 'textContent')
at <anonymous> (c:\Users\minha\Desktop\test.html:14:20)
<script>
document.addEventListener('DOMContentLoaded', () => {
const h1 = document.querySelector('h1')
if (h1) {
h1.textContent = '안녕하세요'
} else {
console.log('h1 태그를 추출할 수 없습니다.')
}
})
</script>
<body>
</body>
> h1 태그를 추출할 수 없습니다.
고급 예외 처리
try {
// 예외가 발생할 가능성이 있는 코드
} catch (exception) {
// 예외가 발생했을 때 실행할 코드
} finally {
// 예외 발생 여부와 상관없이 무조건 실행할 코드
}
catch 구문 내부에 return, break, continue가 있어도 finally 구문을 실행한다.
기본 예외 처리와 고급 예외 처리 중 어떤 것이 더 좋다고 판단하기는 쉽지 않다.
기본적으로는 본인에게 편한 방법을 사용하면 되고,
어떤 예외가 발생할지 예측하기 어려울 경우에는 고급 예외 처리를 사용하는 것이 좋다.
이 글은 혼자 공부하는 자바스크립트 (윤인성 저)를 바탕으로 공부한 내용을 작성한 글입니다.
'Frontend > JavaScript' 카테고리의 다른 글
클래스 ① 클래스 기본 (4) | 2024.10.28 |
---|---|
예외 처리 ② 예외 처리 고급 (0) | 2024.10.27 |
문서 객체 모델 ② 이벤트 활용 (8) | 2024.10.26 |
문서 객체 모델 ① 문서 객체 조작 (0) | 2024.10.02 |
객체 ③ 객체와 배열 고급 (1) | 2024.09.30 |