来源:未知 时间:2016-10-20 17:56 作者:xxadmin 阅读:次
[导读] Node.js下如何自定义错误类型 前言 一般来说,很少人会考虑如何处理应用产生的错误的策略,调试的过程中,简单地利用 console.log(‘error) 定位错误,基本够用了,通过留下这些调试信...
|
Node.js下如何自定义错误类型 前言 一般来说,很少人会考虑如何处理应用产生的错误的策略,调试的过程中,简单地利用 Subclassing Error 首先我们可以定义一个 Error 的子类。通过 var assert = require('assert');
var util = require('util');
function NotFound(msg){
Error.call(this);
this.message = msg;
}
util.inherits(NotFound, Error);
var error = new NotFound('not found');
assert(error.message);
assert(error instanceof NotFound);
assert(error instanceof Error);
assert.equal(error instanceof RangeError, false);可以通过 上面的代码设置了自带的 如果用了 比方说当处理一个HTTP的错误时, 就可以写成这样: function NotFound(msg) {
Error.call(this);
this.message = msg;
this.statusCode = 404;
}现在就已经可以通过错误处理的中间件来处理错误信息: app.use(function(err, req, res, next) {
console.error(err.stack);
if (!err.statusCode || err.statusCode === 500) {
emails.error({ err: err, req: req });
}
res.send(err.statusCode || 500, err.message);
});这会发送HTTP的状态码给浏览器, 当 读取 var NotFound = function(msg) {
Error.call(this);
Error.captureStackTrace(this, arguments.callee);
this.message = msg || 'Not Found';
this.statusCode = 404;
this.name = "notFound"
}
util.inherits(NotFound, Error);
export.NotFoundError = NotFound;当然我们还可以将上面这个创建的抽象错误类型扩展到其他自定义错误中: var notFountError = require('./error').NotFountError;
var UserNotFound = function(msg){
this.constructor.super_(msg);
}
util.inherits(UserNotFound, notFoundError); |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com