javascript 中 finally 的意义是什么?

javascriptobject oriented programmingprogramming

在 JavaScript 中,finally 是在所有情况下都会执行的代码块或语句,同时使用 try 和 catch 块处理错误。JavaScript 中的这些 try、catch 和 finally 块将执行容易出错的代码,并可能导致程序行为不正确(突然终止)。

finally 块位于 try 和 catch 块之后,如果执行了其中任何一个块(try 或 catch),则无疑会执行该块。 finally 块允许我们定义无论某些代码成功还是失败都必须执行的操作。

  • 在 JavaScript 中进行错误处理时,try 块是必需的,而 catch 和 finally 是可选的。

  • 这三个块的组合可以用作 try 与 catch 和 finally 的组合,或者 try 块与其他两个块中的任何一个的组合。

  • try 可以单独使用。但是要使用 finally,必须使用 try 块。

语法

这是 JavaScript 中 finally() 块以及 try 和 catch 块的语法 -

try{
//可以预测错误可能性的代码
}
catch{
//如果执行 try 块,将执行的代码
}
finally{
//try 和 catch 块之后肯定会执行的代码。
}

try 块中提到的错误主要是由于一些运行时问题和程序员的错误。程序的执行如下。

首先,将执行 try 块中的代码,如果发生任何错误,则编译器搜索 catch 块,如果存在 catch,则执行其内容。

然后,将执行 finally 块。下面通过示例解释了 finally 和其他 try 和 catch 块的实现。

示例 1

此示例演示了使用 try 和 catch 执行 finally 块 -

<!DOCTYPE html> <html> <head> </head> <body> <h2> Finally - JavaScript</h2> <button type="button" onclick="forFinally()"> Click the button to show the result </button> <p id="try"> </p> <p id="catch"> </p> <p id="finally"> </p> <script type="text/javascript"> function forFinally() { try { document.getElementById("try").innerHTML = " Try block is executed "; } catch (error) { document.getElementById("catch").innerHTML = " Catch block is executed additional Information: " + error; } finally { document.getElementById("finally").innerHTML = "Finally block is executed "; } } </script> </body> </html>

执行上述程序时,将显示一个按钮。

单击该按钮时,将显示 try 和 catch 执行的结果。

示例 2

以下是 try、catch 和 finally 的另一个示例 -

<!DOCTYPE html> <html> <body> <h2>Finally - JavaScript</h2> <p>Please input a number between 5 and 10:</p> <input id="demo" type="text"> <button type="button" onclick="tryFinally()">Test Input</button> <p id="try"></p> <p id="message"></p> <script> function tryFinally() { const message = document.getElementById("message"); message.innerHTML = ""; let x = document.getElementById("demo").value; try { if(x == "") document.getElementById("try").innerHTML = "Please provide the specific input as mentioned"; if(isNaN(x)) document.getElementById("try").innerHTML = "Its is Not a Number"; if(x > 10) document.getElementById("try").innerHTML = "Input is greater than 10"; if(x < 5) document.getElementById("try").innerHTML = "Given input is less than 5"; if(x>5 && x<10) document.getElementById("try").innerHTML = "Given input is as required"; } finally{ message.innerHTML = "This is the finally block executed after the try block" } } </script> </body> </html>

执行上述程序时,会显示一个文本框和一个按钮,要求输入 5 到 10 之间的数字。

  • 如果您输入相同的数字(5 到 7 之间的数字),则会显示一条成功消息,提示"给定的输入符合要求"。

  • 如果您传递的值大于 10,则消息为"输入大于 10"

  • 同样,如果给定的值小于 5,则输出消息为"给定的输入小于 5"。

在所有情况下,finally 都在 try 之后执行,显示"这是在 try 块之后执行的 finally 块"。


相关文章