javascript - 为什么 `finally` 中的返回覆盖 `try` ?

标签 javascript return try-catch try-catch-finally try-finally

try/catch block 中的 return 语句如何工作?

function example() {
    try {
        return true;
    }
    finally {
        return false;
    }
}

我希望这个函数的输出是true,但它是false!

最佳答案

最后总是执行。这就是它的用途,这意味着它的返回值会在您的情况下使用。

您需要更改您的代码,使其更像这样:

function example() { 
    var returnState = false; // initialization value is really up to the design
    try { 
        returnState = true; 
    } 
    catch {
        returnState = false;
    }
    finally { 
        return returnState; 
    } 
} 

一般来说,您永远不想在一个函数中有多个 return 语句,这就是原因。

关于javascript - 为什么 `finally` 中的返回覆盖 `try` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57429753/

相关文章:

javascript - 在 Google 地理编码中使用回调函数

javascript - 从数组中随机选取多个

c++ - C++ 中的函数按值返回还是按引用返回?

Javascript fetch, catch 永远运行

javascript - 重定向到 spring mvc Controller 而不打开页面

javascript - d3.从数组 javascript 调用 csv url

javascript - 如何在具有相同类但多个 div 的 Div 中选择文本

c# - "return"C#的返回类型是什么

C# 为 Try-Catch 错误分配名称

php - 区分 PHP 错误和应用程序错误