微信号:qianduan1024

介绍:分享Web前端开发中HTML5、JavaScript、CSS3编程学习知识

JavaScript 中错误正确处理方式,你用对了吗?

2018-05-16 09:00 前端开发


英文: Camilo Reyes   译文:葡萄城控件 

www.cnblogs.com/powertoolsteam/p/proper-error-handling-javascrip.html


JavaScript的事件驱动范式增添了丰富的语言,也是让使用JavaScript编程变得更加多样化。如果将浏览器设想为JavaScript的事件驱动工具,那么当错误发生时,某个事件就会被抛出。理论上可以认为这些发生的错误只是JavaScript中的简单事件。


本文将会讨论客户端JavaScript中的错误处理。主要介绍JavaScript中的易犯错误、错误处理、异步代码编写等内容。


下面就让我们一起看看如何正确处理JavaScript中的错误。


Demo演示


本文中使用的demo(https://github.com/sitepoint-editors/ProperErrorHandlingJavaScript)可以在GitHub上找到,运行之后会是这样的页面:



每个按钮都会引发一个“错误(Exception)”,同时这个错误会模拟出一个被抛出的异常TypeError。下面是模块的定义:


// scripts/error.js

function error() {

  var foo = {};

  return foo.bar();

}


首先,这个函数声明了一个空对象foo。需要注意的是,bar( )未在任何地方定义。接下来验证这个单元测试是否会引发“错误”:


// tests/scripts/errorTest.js

it('throws a TypeError', function () {

  should.throws(error, TypeError);

});


这个单元测试在Mocha中,同时在 Should.js中有测试声明。Mocha是测试运行工具,而Should.js是断言库。这个单元测试运行在Node上,不需要使用浏览器。


error( )定义一个空对象,然后尝试访问一个方法。因为bar( )在对象内不存在,所以就会引发异常。这种发生在像JavaScript这样的动态语言上的错误,每个人可能都会遇到!


错误处理(一)


通过以下代码,对上述错误进行处理:


// scripts/badHandler.js

function badHandler(fn) {

  try {

    return fn();

  } catch (e)