예외처리란?
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가 정상적으로 돌아가지 않을 수 있다. 그러한 경우 페이지 자체가 다운되는 것을 미연에 방지하고 에러 사실을 전달하기 위해 사용한다.
'Javascript' 카테고리의 다른 글
[Javascript] switch 조건문 (0) | 2022.01.19 |
---|---|
[Javascript] 삼항연산자 / 조건부 렌더링 / 옵셔널 체이닝 (0) | 2022.01.19 |
[Javascript] 실무 반복문 map / filter (0) | 2022.01.18 |
[Javascript] 호이스팅이란? | Hoisting (0) | 2022.01.17 |
[Javascript] async와 await | 동기와 비동기 방식 (0) | 2022.01.17 |