Javascript

[Javascript] 예외 처리 / try ... catch ... finally

쭈꾸미 2022. 1. 19. 14:56

예외처리란?

try...catch 문은 실행할 코드블럭을 지정하고 예외(exception)가 발생(throw)할 경우의 응답을 지정한다. 이러한 일련의 과정을 예외처리라고 부른다.

 

문법

try {
  try_statements
}
catch (exception_var) {
  catch_statements
}
[finally {
  finally_statements
}]

try_statements : 실행될 선언들

catch_statements : try블록에서 예외가 발생했을 때 실행될 선언들

exception_var : catch 블록과 관련된 예외 객체를 담기 위한 식별자

finally_statements : try 선언이 완료된 이후에 실행될 선언들. 이 선언들은 예외 발생 여부와 상관없이 실행된다.

 

예시

try { 
	const result = await createProduct({ 
        variables: { 
            seller: seller, 
            createProductInput: { 
                name: name, 
                detail: detail, 
                price: Number(price) 
            } 
        } 
    }) 
    // console.log(result.data.createProduct.message) 
    // 등록한 제품의 id 가져오기 
    const productId = result.data.createProduct._id 
    // console.log(productId) 
    router.push(`/05-08-dynamic-routed-product/${productId}`) 
} catch(error){ 
    console.log(error.message) 
}

위 코드는 graphQL을 이용해 데이터를 DB에 등록하는 코드의 일부로, try 안의 선언이 실행되지 않았을 경우 백엔드에서 지정해둔 에러 메시지를 콘솔에 출력하게 된다.

 

서비스를 운영하다 보면 백엔드 오류 등 외부의 원인으로 인해 API가 정상적으로 돌아가지 않을 수 있다. 그러한 경우 페이지 자체가 다운되는 것을 미연에 방지하고 에러 사실을 전달하기 위해 사용한다.