본문 바로가기

Web/Javascript

[JAVASCRIPT] try-catch 에러 전파

Error 발생

  • 자바스크립트 런타임 도중 에러가 발생할 경우 실행이 중지된다.
  • 따라서 에러를 받아주기 위해 try - catch 로 예외처리를 한다.
  • 스택의 아래방향으로 계속해서 에러를 전파한다.
  • 단 문법적인 에러는 try catch 로 처리할수 없다.
new Error("에러");
// 에러를 발생시킨것이 아닌 에러객체를 생성했기 때문에 런타임이 중지되지 않는다.

throw new Error("에러");
// 이 밑에 코드들은 실행이 중지된다. (Node 기준)

일반적인 try-catch 예외처리

function A (){
  try {
    B();
  }catch(e){
    console.log("A 가 잡음")
  }

}
function B () {
  try{

    throw new Error("에러임");
  }catch(e){
    console.log("B 가 잡음")
  }
}
A(); // "B 가 잡음"

런타임 도중 에러는 계속해서 아래로 전파된다.

위의 예제는 함수는 B에서 에러 처리를 해줬기 때문에 A 에선 발생하지 않는다.

비동기 try-catch

try{
	setTimeout(() => {
		throw new Error("에러")
	}, 1000)
}catch(e){
	
}

해당 코드는 예외처리를 하지 못한다.

스코프가 비동기적으로 돌기때문에 아래와 같이 처리해야한다.

	setTimeout(() => {
		try{
			throw new Error("에러")
		}catch(e){
			
		}
	}, 1000)

There might be incorrect information or outdated content.

 

 

 

 

'Web > Javascript' 카테고리의 다른 글

[JAVASCRIPT] for~in vs for~of  (0) 2023.08.28
[JAVASCRIPT] this  (0) 2023.08.25
[JAVASCRIPT] isNaN 검사  (0) 2023.08.15
[JAVASCRIPT] DOM - 노드 조작  (0) 2023.08.04
[JAVASCRIPT] DOM - 노드 탐색  (0) 2023.08.04