如何使库错误直接指向用户代码?

时间:2016-02-20 12:49:18

标签: javascript dom

我有一个正在处理的库,并且进行了错误检查以确保用户不会向特定对象添加多个方法。

当用户中断此操作时,他们会收到错误,但是开发人员工具中的即时输出并未指出错误。它反而指向图书馆。错误链 显示用户错误,但需要展开箭头图标才能看到它

我想知道是否有办法编写指向用户直接错误的错误检查。

以下是一些要澄清的图片。

以下是我收到的错误

enter image description here

要查看堆栈跟踪的一部分,用户创建了错误,需要向下折叠箭头

enter image description here

相反,我希望错误看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分:0)

每当您调用库时,请将您的调用包装在try catch子句中。 如:

图书馆API

{
  method1,
  method2,
  ...
  methodN
}

用户代码

function doSomethingWithLibrary() {
   try {
     library.method2(x);
   } catch (e) {
     // library threw an error, handle it
   }
}

这个想法不是用try-catch包装所有的库调用,因为这会对编译器优化产生负面影响。来自用户输入的一点输入清理,或者当您控制输入时,通常可以放弃try-catch以支持某些单元测试。

我还建议总是命名你的函数,匿名函数真的可以使调试比它需要的更复杂。我的第二个建议是将尽可能多的上下文信息放入抛出的错误中(函数名,库方法,提供的参数