All'alba vincerò

At dawn, I will win!

Javascript

[JS] try catch / 에러 던지기(throw new Error)

나디아 Nadia 2024. 6. 17. 13:45

try catch

: 코드 실행 중에 발생할 수 있는 오류를 처리하기 위해 사용

try {
   ...
}
catch (err) {
  // 에러 핸들링
}

* err.name:
에러 이름

* err.message: 에러 내용

 

  • 오직 런타임 에러에만 동작
  • 동기적으로 동작
  • 코드가 문법적으로 잘못된 경우엔 try..catch가 동작하지 않음
try {
  console.log(value);
  
} catch (e) {
  console.log(e.name); // ReferenceError
  console.log(e.message); // value is not defined
}

 

 

예시

try {
  const data = JSON.stringify({
    "id": 1,
    "name": "Leanne Graham",
    "username": "Bret",
    "email": "Sincere@april.biz",
    "address": {
      "street": "Kulas Light",
      "suite": "Apt. 556",
      "city": "Gwenborough",
      "zipcode": "92998-3874",
      "geo": {
        "lat": "-37.3159",
        "lng": "81.1496"
      }
    },
    "phone": "1-770-736-8031 x56442",
    "website": "hildegard.org",
    "company": {
      "name": "Romaguera-Crona",
      "catchPhrase": "Multi-layered client-server neural-net",
      "bs": "harness real-time e-markets"
    }
  })


  const user = JSON.parse(data);

  console.log(user.name); // Leanne Graham
  console.log(user.value);

  if (!user.value) {
    throw new ReferenceError('해당 키 값은 존재하지 않습니다.')
  }
  
} catch (error) {
  console.log('JSON Error : ' + error.message);
}

console.log('JSON Error : ' + error.message);

 

 


 

에러 던지기 ⛔

: 에러를 만들어서 던짐

throw new Error('에러 문구')

 

 

 

 

throw 연산자

: 에러 객체를 던진다. 

throw <error object>
  • 숫자, 문자열 같은 원시형 자료를 포함한 어떤 것이든 에러 객체(error object)로 사용할 수 있다.

 

 

에러 객체 생성

new Error('에러 메세지')

new SyntaxError()
new ReferenceError()
  • JS는 Error, SyntaxError, ReferenceError, TypeError등의 표준 에러 객체 관련 생성자를 지원한다.

 

 


 

 

'try..catch'와 에러 핸들링

 

ko.javascript.info