JavaScript native 方法静默失败而不是抛出错误

标签 javascript exception

为了练习,我正在编写一个 JavaScript 库,我正在对现有对象(例如 Array)的代码进行建模。

我注意到像 array.pop (当数组为空时)和 array.splice(-1, -1) 这样的方法会默默地失败,而不是抛出一个错误。为什么会这样?出于调试目的抛出错误不是更好吗?还是有一些我不知道的 JavaScript 最佳实践?

最佳答案

空数组上的 array.pop 将返回类型:undefined。如果您尝试使用结果,它将引发错误。

array.splice 总是会返回一个数组。如果未删除任何内容,它将返回一个空数组。

为确保此类方法返回预期值,您应该编写单元测试。

一个简单的例子:

if( !myarray.pop() ){
    console.log( 'Error' );
}

对于更详细的单元测试,我会使用 js 单元测试库。我用过的一个是 QUnit.js http://qunitjs.com/

关于JavaScript native 方法静默失败而不是抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15177704/

相关文章:

javascript - 如何在其中一个上使用溢出来放置相同高度的列?

javascript - 使用单元格格式将数组导出到 excel 文件

javascript - 递归函数未捕获父 DOM 节点属性

javascript - TypeScript 中的匿名/内联接口(interface)实现

上传加密 PDF 文件时出现 java.lang.ClassNotFoundException

android - 如何在 android 设备上获取应用程序崩溃详细信息(自己的统一应用程序)

javascript - Eclipse:多次运行 JavaScript 程序以使其正常工作

c++ - 抛出导致调用析构函数的异常会使程序崩溃

java - Java出现未报告的异常

java - JTextField 中的异常处理