在Node.js中捕获错误并发送自定义错误代码,可以通过以下几种方式实现:
try {
// 可能会抛出错误的代码
throw new Error('这是一个错误');
} catch (error) {
// 处理错误
console.error(`错误代码: ${error.code || 'UNKNOWN_ERROR'}, 错误信息: ${error.message}`);
}
function asyncOperation(callback) {
setTimeout(() => {
try {
// 可能会抛出错误的代码
throw new Error('这是一个异步错误');
} catch (error) {
callback(error);
}
}, 1000);
}
asyncOperation((error) => {
console.error(`错误代码: ${error.code || 'UNKNOWN_ERROR'}, 错误信息: ${error.message}`);
});
function asyncOperation() {
return new Promise((resolve, reject) => {
setTimeout(() => {
try {
// 可能会抛出错误的代码
throw new Error('这是一个异步错误');
} catch (error) {
reject(error);
}
}, 1000);
});
}
(async () => {
try {
await asyncOperation();
} catch (error) {
console.error(`错误代码: ${error.code || 'UNKNOWN_ERROR'}, 错误信息: ${error.message}`);
}
})();
为了更好地管理和识别错误,可以创建自定义错误类:
class CustomError extends Error {
constructor(message, code) {
super(message);
this.code = code;
}
}
try {
throw new CustomError('这是一个自定义错误', 'CUSTOM_ERROR_CODE');
} catch (error) {
console.error(`错误代码: ${error.code}, 错误信息: ${error.message}`);
}
const express = require('express');
const app = express();
app.get('/', (req, res, next) => {
try {
// 可能会抛出错误的代码
throw new Error('这是一个路由错误');
} catch (error) {
next(error);
}
});
app.use((err, req, res, next) => {
console.error(`错误代码: ${err.code || 'UNKNOWN_ERROR'}, 错误信息: ${err.message}`);
res.status(500).send('服务器内部错误');
});
app.listen(3000, () => {
console.log('服务器运行在 http://localhost:3000');
});
try-catch
语句捕获。通过这些方法,你可以在Node.js中有效地捕获和处理错误,并发送自定义错误代码。
领取专属 10元无门槛券
手把手带您无忧上云