javascript - 只用一个try-catch block 就可以捕获多个异常吗?

标签 javascript exception closures

在此 JavaScript 代码中 f.init() 控制程序的整个流程:

var f = function() {
    return {
        init: function(var1) {
            try {
                f.f1(1)
            } catch (e) {
                alert(e);
            }
            try {
                f.f2(1)
            } catch (e) {
                alert(e);
            }
            // ...
            // more try-catch blocks                
            // ...
        },
        f1: function() {
            throw Error('f1 called');
        },
        f2: function() {
            throw Error('f2 called');
        }
    };
}();

f.init();

如何将所有异常管理集中到一个 try-catch block 中?像这样的事情:

var f = function() {
    return {
        init: function(var1) {
            f.f1(1) // this cut the control flow if thrown some error
            f.f2(1) // so this is not called
        },
        f1: function() {
                throw Error('f1 called');
        },
        f2: function() {
                throw Error('f2 called');
        }
    };
}();

try {
    f.init();
} catch (e) {
    alert(e);
}

前面的代码在抛出一些错误后切断了流程。

最佳答案

你不能。一旦抛出错误,程序流程就会中断。

关于javascript - 只用一个try-catch block 就可以捕获多个异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8316113/

相关文章:

javascript - qx.log.appender 语法

javascript - 如何在不弄乱 IE9 的情况下获取标记为 "visited"的 Ajax 链接

javascript - 使用 onchange 显示图像的名称 ="readURL(this);"

javascript - .load() 没有从 html 文件中提取内容

exception - 从连接到ElasticSearch Cluster的客户端节点进行搜索时获取SearchPhaseExecutionException

python - 如何快速找出导致错误的列表?

java - 在 JSON 中嵌套太深...我应该切换到 XML 吗?

python - 在 python 中创建函数列表(python 函数闭包错误?)

javascript - 我写了一个简单的 Javascript 关闭代码,但它没有运行。我哪里错了?

指向成员函数的 C++ 指针,替代 __closure