Mik*_*maa 29 javascript exception-handling exception ecmascript-5
不知怎的,这不是50年编程语言发展的高潮:
  throw "My exception message here";
Run Code Online (Sandbox Code Playgroud)
在Javascript中执行异常的正确方法是什么呢?
它们可以被识别(instanceof)
除默认消息和堆栈跟踪外,它们还可以携带其他有效负载
它们"子类化"基类Exception,因此调试控制台等可以提取有关异常的有意义信息
可能的嵌套异常(将异常转换为另一个异常):如果需要捕获异常并重新抛出新异常,则会保留orignal堆栈跟踪,并且可以通过调试工具进行有意义的读取
他们遵循Javascript最佳实践
Ray*_*nos 25
throw new Error("message");
或者如果您想更具体地使用其中一个错误对象
确保抛出真正的错误非常重要,因为它们包含堆栈跟踪.抛出一个字符串是愚蠢的,因为它没有附加任何元数据.
您还可以将错误子类化
// for some sensible implementation of extend 
// https://gist.github.com/1441105#file_1pd.js
var MyError = extend(Object.create(Error.prototype), {
   ...
});
Run Code Online (Sandbox Code Playgroud)
        JavaScript中的基本"异常"是内置Error对象:
throw new Error("My exception message here");
Run Code Online (Sandbox Code Playgroud)
您可以将自定义例外定义为:
function CustomError(message) {
  this.message = message;
}
CustomError.prototype = new Error();
CustomError.prototype.constructor = CustomError;
Run Code Online (Sandbox Code Playgroud)
检查异常类型instanceof.还有一个方便的内置异常列表.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           6128 次  |  
        
|   最近记录:  |