javascript - try {} without catch {} 可以在 JavaScript 中使用吗?

标签 javascript function try-catch return

我有很多函数要么返回一些东西,要么抛出错误。在主函数中,我调用了其中的每一个,并希望返回每个函数返回的值,或者如果第一个函数抛出错误则继续第二个函数。

所以基本上我目前拥有的是:

function testAll() {
    try { return func1(); } catch(e) {}
    try { return func2(); } catch(e) {} // If func1 throws error, try func2
    try { return func3(); } catch(e) {} // If func2 throws error, try func3
}

但实际上我只想尝试返回它(即如果它不抛出错误)。我不需要 catch block 。但是,像 try {} 这样的代码会失败,因为它缺少一个(未使用的)catch {} block 。

我把an example on jsFiddle .

那么,有没有什么方法可以删除那些 catch block ,同时达到相同的效果?

最佳答案

没有 catch 子句的 try 将其错误发送到下一个更高的 catch 或窗口,如果其中没有定义 catch那个尝试。

如果您没有catch,try 表达式需要一个finally 子句。

try {
    // whatever;
} finally {
    // always runs
}

关于javascript - try {} without catch {} 可以在 JavaScript 中使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5764107/

相关文章:

diff - tcl:捕获 "exec diff"的输出,该输出返回非零

javascript - 每次运行代码时我的网站都会刷新

javascript - jQuery 在 IE 中冲突悬停/切换状态?

javascript - 在 WordPress 中使用 wp_editor 时,序列化仅在第二次提交时返回完整表单

javascript - 在 Mongoose 中索引数组项

javascript - 碰撞检测功能可防止程序在数组中绘制多个球

c++ - 在 C++ 中,为什么我们在重载函数中将引用参数声明为 const?

c - 函数地址一致?

.net - 尝试在.net中捕获

PHP 使用自定义异常处理程序捕获未捕获异常