웹개발 기타

Error 객체와 에러 처리

민ズl 2024. 12. 16. 12:31

Error 객체란?

  • javascript에서 발생한 에러를 나타내는 내장 객체
  • TypeScript에서도 Error객체를 사용
  • 기본적인 에러를 다루기 위한 객체
  • Error는 클래스이기 때문에 상속가능
  • 두가지 주요 속성을 제공
    • message : 에러 메시지를 나타내는 문자열
    • name : 에러의 이름
//javascript
const error = new Error("Something went wrong!");
console.log(error.message);  // "Something went wrong!"
console.log(error.name);     // "Error"

//typescript
function throwError(message: string): never {
  throw new Error(message);  // Error는 `message` 속성을 가짐
}

try {
  throwError("Something went wrong!");
} catch (err) {
  if (err instanceof Error) {
    console.log("Caught error:", err.message);
  }
}

 

에러처리

  • 에러가 발생시 throw문을 사용하여 에러를 던질 수 있음
    => 던진 에러는 try...cath문을 사용하여 처리가능
  • try : 코드를 실행하며, 에러가 발생할 수 있는 부분을 포함
  • catch : 에러가 발생했을때 실행되는 코드 블록
try {
  const result = someFunction();
} catch (err) {
  if (err instanceof Error) {
    console.log("Error caught:", err.message);
  } else {
    console.log("Unknown error:", err);
  }
}

 

instanceof와 에러 객체

에러 객체는 instanceof 연산자를 사용하여, 객체가 Error클래스의 인스턴스인지 확인가능

try {
  throw new Error("This is an error!");
} catch (err) {
  if (err instanceof Error) {
    console.log("Caught an Error object:", err.message);
  }
}

try {
  throw "This is a string error!";
} catch (err) {
  if (err instanceof Error) {
    console.log("Caught an Error object:", err.message);
  } else {
    console.log("Caught something else:", err);
  }
}

'웹개발 기타' 카테고리의 다른 글

url parameter  (0) 2024.12.12
프레임워크 vs 라이브러리🤔  (1) 2024.12.10
스크립트 로딩 속성, DOMContentLoaded, loaded  (1) 2024.10.25
로컬스토리지  (2) 2024.10.24
[성능 최적화]디바운싱 , 스로틀링  (0) 2024.10.24