第三方JavaScript - 使用try catch的好主意?

时间:2011-12-13 15:30:25

标签: javascript

我正在开发第三方JavaScript小部件,用户将在其应用程序/博客中包含这些小部件。我对库有很好的测试,但我担心如果有一些语法错误的话,会导致用户应用程序上的其他脚本停止加载。

所以 - 为了防止这种情况发生,最好将我的整个小部件代码包含在这样的try / catch中吗?

try {
    // my library
} catch(e) {
    // notify me about the error
}

2 个答案:

答案 0 :(得分:1)

以下是使用try-catch块的常用方法。如果您可以捕获异常并对该异常执行某些操作,那么请继续捕获它。例如,BadHtmlException或类似的东西是一个例外,你可以捕获它以向用户提供反馈,你应该修复HTML并再试一次。

有些类型的例外情况没有可以执行的操作。例如,应用程序配置错误,用户/密码错误。这应该是一个严重的错误,应该一直推到应用程序。可能是对用户可能没有意义的异常。

那么我的建议是什么?我建议不要在try-catch中包装任何内容,除非你知道会抛出异常。如果存在错误或异常,则使用您的代码的人应该看到它并将其报告为问题。你真的不能把所有的时间花在可能的问题上,这些问题可能是你的代码,也可能不是。

最后,您应该编写单元测试并确保在每次发布之前对库的每个部分进行了充分测试。这样做可以确保将来的版本不会破坏任何东西。

答案 1 :(得分:0)

你可以做的是,在代码周围有一个try / catch块,在catch块中调用console.log()。这样,消费者的代码仍会运行,但在调试时,他们会看到您的库中出现了问题并通知您。