Node.js에서 오류 발생

Shraddha Paghdar 2023년10월12일
Node.js에서 오류 발생

오늘의 게시물은 Node.js에서 오류를 발생시키는 방법을 알려줍니다.

Node.js에서 오류 발생

오류는 시스템이 제대로 실행되도록 허용하지 않는 명령문입니다.

Node.J의 오류는 throw 키워드의 도움으로 생성되는 예외를 통해 처리됩니다. 이는 사용자가 사용자 지정 예외를 만드는 데 도움이 될 수 있습니다.

이 JavaScript 코드 라인이 실행되는 즉시 프로그램의 정상적인 흐름이 중지되고 가장 가까운 예외 핸들러에서 제어가 유지됩니다. 호출 함수 사이에 catch 블록이 없으면 프로그램이 종료됩니다.

통사론:

throw expression;

값은 일반적으로 숫자, 개체 또는 문자열을 포함하여 클라이언트 측 코드의 모든 JavaScript 값이 될 수 있습니다. 그러나 Node.js에서는 문자열을 던지지 않습니다. Error 객체만 던집니다.

오류 객체

오류 개체는 Error 개체의 인스턴스이거나 기본 Error 모듈에서 제공되는 Error 클래스를 확장하는 개체입니다. 런타임 오류가 발생하면 오류 개체가 생성됩니다.

사용자 지정 예외에 대한 기본 개체로 오류 개체를 사용할 수도 있습니다.

throw new Error('You reached the end!');
class MyCustomError extends Error {
  // ...
}
throw new MyCustomError();

예외 처리

예외 처리기는 try...catch 문입니다. try 블록에 포함된 코드 라인에서 발생한 모든 예외는 적절한 catch 블록에서 처리됩니다.

프로그램이 실행되는 동안 포착되지 않은 예외가 발생하면 프로그램이 실패합니다.

try {
  /* Your Regular Code */
} catch (e) {
  /* Catch your exception here */
}

이 예에서 ’e’는 예외 값입니다. 다양한 유형의 오류를 감지할 수 있는 여러 핸들러를 추가할 수 있습니다.

예외 유형에 따라 프로그램을 수정할 수 있습니다. 프로그램 실패 문제를 해결하려면 프로세스 개체에서 uncaughtException 이벤트를 기다리십시오.

process.on('uncaughtException', err => {
  console.error('An uncaught error is caught here', err);
  process.exit(1);
});

이를 위해 기본 프로세스 모듈을 가져올 필요가 없습니다. 자동으로 포함되기 때문입니다.

약속으로 예외 처리

Promise를 사용하면 고유한 작업을 집합적으로 연결하고 마지막에 오류를 처리할 수 있습니다. Promise Chain은 오류를 처리하는 데 탁월합니다.

Promise가 거부되면 컨트롤은 가장 가까운 거부 핸들러로 이동합니다. 그것은 실제로 매우 편리합니다.

보시다시피 .catch는 즉각적일 필요가 없습니다. 하나 또는 여러 개의 .then 이후에 나타날 수 있습니다.

fooFunction()
    .then(barFunction)
    .then(fooBarFunction)
    .catch(err => console.error(err));

async/await로 예외 처리

async/await를 사용하면 try...catch를 사용하여 오류를 포착해야 합니다.

async function fooFunction() {
  try {
    await fooBarFunction();
  } catch (err) {
    console.error(err.message);
  }
}

아래의 간단한 예를 통해 이해해 봅시다.

fooBarFunction =
    async () => {
  throw new Error('Hello DelftStack Users!')
}

async function fooFunction() {
  try {
    console.log('Before Error') await fooBarFunction();
  } catch (err) {
    console.error(err.message);
  }
} fooFunction()

위의 예에서 fooFunction()을 호출합니다. 먼저 메시지를 인쇄한 다음 내부적으로 fooBarFunction()을 호출합니다. fooBarFunction()에서 단순히 fooFunction()에 의해 포착되는 오류를 발생시킵니다.

Node.js를 지원하는 Replit에서 위의 코드 스니펫을 실행해 봅니다. 아래 결과가 표시됩니다.

출력:

Before Error
Hello DelftStack Users!

데모 실행

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn

관련 문장 - Node.js Error