javascript - 在 JavaScript 中实现异常处理

标签 javascript

我想知道在 Javascript 中实现异常处理的最好和最简单的方法。我正在寻找一个“单点”解决方案。我有很多功能,不想四处走动并实现 try-catch。

我觉得 window.onerror 会是一种更好的方法,因为我只需要在一个地方实现它,并且任何函数中发生的任何异常,我都可以使用 window.onerror 来处理它。但是,这似乎仅在 IE 中受支持。有没有我可以使用的类似方法,以便它支持所有主要的标准浏览器。

提前致谢。

最佳答案

使用 try..catch block

JavaScript 中的 try..catch block 与常规的 C# try..catch block 非常相似。可疑代码将被放入 try block 中,try block 中发生的所有异常将被捕获到 catch block 中。

window.onload = function()
{
    try
    {
        var x = 90;
        var value = x / y;
    }
    catch(err)
    {
        document.write(err.name + ": " + err.message + "<br/>");
    }
}

输出:

TypeError: 'y' is undefined

在 catch 中,您将获得包含异常类型和描述的对象。此外,您还可以像在 C# 中一样使用 finally block 。

window.onload = function()
{
    try
    {
        var x = 90;
        var value = x / y;
    }
    catch(err)
    {
        document.write(err.name + ": " + err.message + "<br/>");
    }
    finally
    {
        alert('This is finally block');
    }
}

使用onerror事件

每次在文档中执行操作时出现任何错误都会引发 onerror 事件。这类似于 ASP.NET 中类似于 Application_Error 的现场异常处理。这是演示这一点的示例代码:

window.onload = function()
{
    var x = 90;
    var value = x / y;
}

window.onerror = function(errorMeaage, fileName, lineNumber)
{
    document.write('Error: ' + errorMeaage);
}

使用 jQuery 解决方案

它类似于使用 onerror 但使用 jQuery 语法。语法是:

$(window).error(
    function(errorMeaage, fileName, lineNumber)
    {
        // handle error here
    }
);

摘自 JavaScript Exception Handling Techniques

关于javascript - 在 JavaScript 中实现异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4654838/

相关文章:

javascript - 这是如何被 Javascript 词法分析器解析的? (没有括号的闭包模式)

javascript - ng-repeat 在 reangular 发布请求后确实更新了

javascript - jQuery 旋转函数未触发。

javascript - 导入与其所在目录同名的 JavaScript 文件

javascript - 如何制作 SVG 文本元素 "click-through-able"?

javascript - 编辑不和谐角色权限。 (不和谐.js)

javascript - 为什么这个变量在函数中未定义?

javascript - 如何找出对象的 onclick 事件调用的 javascript 函数?

javascript - 选择单选按钮并单击“保存”按钮时显示特定的 Bootstrap 模式

javascript - 加载后更新 Sencha Touch 中的列表项