본문 바로가기
JavaScript

자바스크립트#08 : 예외 처리

by haheehee 2022. 12. 21.

구문 오류(sytax error)

프로그램 실행 전에 발생하는 오류

 

예외(exception), 런타임 오류(runtime error)

프로그램 실행 중 발생하는 오류

 


식별자 잘못입력

오탈자 수정을 통해 해결

 


추출된 문서 객체가 없는 경우

<script>
	document.addEventListener('DOMContentLoaded', () => {
		const h1 = document.querySelector('h1')
		if(h1) {
			h1.textContent = "안녕하세요"
		} else {
			console.log("h1 태그를 추출할 수 없습니다.")
		}
	})
</script>

if문을 통해 h1이 존재하면 true로, 존재하지 않다면 false로 변환되어

기본 예외 처리를 할 수 있도록 함.

 


try-catch-finally 구문

try 구문 안에서 예외가 발생하면, try구문에서 break한 후, catch 구문을 실행한다.

try {
	// 예외가 발생할 가능성이 있는 코드
} catch (exception) {
	// 예외가 발생했을 때 실행할 코드
} finally {
	// 무조건 실행하는 코드 (필요한 경우)
}

오류 구문을 정상 종료 시켜준다.

finally는 가장 최우선순위! return이 위에서 되더라도 finally구문을 실행시켜야 한다.

 

**예외 처리는 예외가 발생했을 때 프로그램이 중단되지 않게 하는 처리. 구문 오류는 예외 처리로 처리할 수 없음


예외 객체

try-catch구문을 사용할 때, catch 괄호 안에 입력하는 식별자.

일반적으로 e, exception 두가지 식별자를 사용한다.

속성은 name과 message가 있다.         -> exception.name 과 exception.message로 사용 가능

 

자바스크립트의 배열 크기가 한정되어 있기 때문에 배열을 너무 크게 선언하면 오류가 발생된다.

(자바스크립트의 배열 크기는 4,294,967,295까지 가능하다.)

 

예외 강제 발생

throw키워드

throw 문자열

단순하게 예외를 발생시킬 때 사용

throw new Error(문자열)

좀 더 자세하게 예외를 발생시킬 때 사용

 

throw 키워드 : 예외를 강제로 발생시킨다.

throws 나를 호출한 놈에게 강제로

 


**자바스크립트는 undefined와 NaN이라는 값이 있어서 다른 프로그래밍 언어에 비해서 예외를 많이 발생하지 는 않음

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

출처 : 혼자 공부하는 자바스크립트 (윤인성)

댓글