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

第三方JavaScript-使用try-catch的好主意?,javascript,Javascript,我正在开发一个第三方JavaScript小部件,用户可以将其包含在应用程序/博客中。我在库中进行了很好的测试,但是我担心,尽管如此,如果一些语法错误潜入,并导致用户应用程序上的其他脚本停止加载 所以-为了防止这种情况发生,用这样的try/catch包住我的整个小部件代码是一个好主意吗 try { // my library } catch(e) { // notify me about the error } 下面是一个很好的常用方法,可以了解try-catch块的用途。如果您

我正在开发一个第三方JavaScript小部件,用户可以将其包含在应用程序/博客中。我在库中进行了很好的测试,但是我担心,尽管如此,如果一些语法错误潜入,并导致用户应用程序上的其他脚本停止加载

所以-为了防止这种情况发生,用这样的try/catch包住我的整个小部件代码是一个好主意吗

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

下面是一个很好的常用方法,可以了解
try-catch
块的用途。如果您可以捕获一个异常并对该异常执行某些操作,那么继续并捕获它。例如,
BadHtmlException
或类似的异常,您可以捕捉到,以向用户提供反馈,建议您修复HTML并重试

存在无法执行任何操作的异常类型。例如,应用程序配置不正确,用户/密码错误。这应该是一个严重错误,应该一直推到应用程序。可能是对用户来说没有意义的异常

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


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

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

需要考虑的一件事。如果您收到错误通知,您是否会将该知识传递给您的用户/呼叫者?(他们可能也有兴趣知道失败的事情)语法错误是如何潜入的?在发布之前检查代码,如果没有语法错误,那么它就没有语法错误了。他可能指的是未发现的bug。当你说
//通知我错误时
你是指正在使用你的库的用户还是说你是编写库的人?@Vidas:潜入意思-有时候IE会对一件不清楚的事情大发雷霆。我不可能在所有设备上进行测试。我担心的是,如果出现任何问题,应该将其限制在我的代码中,并且此错误不应导致页面上的其他脚本停止执行。我不认为提交无效用户名会引发异常。这只是一种状态——你可以期望用户偶尔输入错误。异常是针对意外行为…我不是指提交无效用户名。我的意思是,如果数据库是用错误的凭据设置的。如中所示,MySQL用户/密码。与用户输入无关。我会让我的答案更清楚。我不想让脚本中的异常破坏页面上的其他脚本,而不仅仅是捕获错误。我认为这应该会破坏页面。您希望用户看到存在问题,如果您吃掉了异常,那么他/她将不知道事情是否正常工作。