오류

오류 에서 JavaScript

19개의 연습 문제

오류 소개

오류는 프로그램이나 코드에서 뭔가 잘못되었거나 예상치 못한 일이 있을 때 그 사실을 알려 주는 데 유용해요.

오류는 JavaScript 객체예요.

이 객체의 주요 속성은 message예요.

const error = new Error('Oops, something went wrong');

console.log(error.message);
// => "Oops, something went wrong"

throw 문법을 사용하면 Error 객체를 던질 수 있어요.

throw new Error('Oops');

오류가 던져지면 현재 실행이 중단되고, 호출 스택의 첫 번째 catch 블록에서 다시 이어서 실행돼요.

try {
  throw new Error('Oops');
} catch (error) {
  console.log(error.message);
  // => "Oops"
}

JavaScript의 다른 클래스와 마찬가지로, extends 키워드를 사용하면 Error를 상속해서 사용자 정의 오류를 만들 수 있어요. instanceof 문법은 잡은 오류가 Error의 특정 하위 클래스의 인스턴스인지 확인해요.

class CustomError extends Error {}

try {
  // ... Code that may throw an error
} catch (error) {
  if (error instanceof CustomError) {
    console.log('The error thrown is an instance of the CustomError');
  }
}

오류 유형

Error 객체 외에도 다른 내장 오류 객체들이 있어요. 자세한 내용은 여기에서 확인할 수 있어요.

사용자 정의 오류

내장 오류 타입 중 하나를 상속하는 클래스를 만들면 사용자 정의 오류 타입을 직접 정의할 수도 있어요.

class MyCustomError extends Error {}

오류가 아닌 값 던지기

throw 문법은 보통 Error 객체를 던질 때 사용하지만, JavaScript는 유연해서 string, null 또는 어떤 원시 타입이든 던질 수 있어요.

오류 스택 트레이스

JavaScript 표준은 아니지만, 대부분의 JavaScript 환경은 Error 객체에 stack 속성을 구현하고 있어서, 던져진 오류의 스택 트레이스를 얻을 수 있어요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요

오류 배우기