#에러처리

에러핸들링 try-catch

연재몬 2022. 3. 14. 21:47
try{
  //소스코드작성
  //이안에서 에러 발생
  hi
  
 } catch(error) {
   //catch가 에러를 잡아줌
   console.log("내가잡은 에러는", error.message)
   }

=> hi is not defined 표시

 

throw = 강제로 에러를 발생

 

try{
  //소스코드작성
  //이안에서 에러 발생
    if(weight < 30) {
      throw new Error("에러메세지 작성")
    }
  
 } catch(error) {
   //catch가 에러를 잡아줌
   console.log("내가잡은 에러는", error.message)
   }

이 경우 조건에 맞지않은 코드를 작성하면

try에서 쓴 에러메세지가 출력 됨 

try…catch는 오직 런타임 에러에만 동작한다. 

실행가능한 코드에만 try catch가 가능하다.

만약에 { }중괄호 짝이 안맞다던지 그런 문법적인 에러로 돌아갈수 없는 코드라면 try catch가 동작할 수 없다.

  • 에러 객체 Error
    try에서 에러가생기면 catch 블락에 error정보를 error객체안에 넣어서 매개변수로 전달해준다.
    Error객체를 살펴보면 안에 name, message등 여러 이용가능한 속성값이 있지만 에러를 보기위해선 Error.message만 기억해도 좋다

 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error   #에러객체 

 

Error - JavaScript | MDN

Error objects are thrown when runtime errors occur. The Error object can also be used as a base object for user-defined exceptions. See below for standard built-in error types.

developer.mozilla.org

 

** 즉, try안에서는 에러를 잡고 catch로 이동한다 **

에러핸들링을 하고싶다면, 소스코드를 try 안에 쓸 것 

참고로 에러가 발생되는 순간 그 후의 코드는 읽히지않음