win*_*nut 4 javascript exception throw
在JS中,你可以抛出一个“new Error(message)”,但是如果你想检测异常的类型并对消息做一些不同的事情,那就没那么容易了。
这篇文章: http://www.nczonline.net/blog/2009/03/10/the-art-of- throwing-javascript-errors-part-2/
是说你可以这样做:
function MyError(message){
this.message=messsage;
this.name="MyError";
this.poo="poo";
}
MyError.prototype = new Error();
try{
alert("hello hal");
throw new MyError("wibble");
} catch (er) {
alert (er.poo); // undefined.
alert (er instanceof MyError); // false
alert (er.name); // ReferenceError.
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用(得到“未定义”和错误)
这可能吗?
Douglas Crockford 建议抛出如下错误:
throw{
name: "SomeErrorName",
message: "This is the error message",
poo: "this is poo?"
}
Run Code Online (Sandbox Code Playgroud)
然后你可以轻松地说:
try {
throw{
name: "SomeErrorName",
message: "This is the error message",
poo: "this is poo?"
}
}
catch(e){
//prints "this is poo?"
console.log(e.poo)
}
Run Code Online (Sandbox Code Playgroud)
如果您确实想使用 MyError 函数方法,它可能应该如下所示:
function MyError(message){
var message = message;
var name = "MyError";
var poo = "poo";
return{
message: message,
name: name,
poo: poo
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2946 次 |
| 最近记录: |