如何在 JavaScript 中使用 throw 語句?
在本教程中,我們將學習如何在 JavaScript 中使用 throw 語句。**“throw”** 是 JavaScript 中的保留關鍵字,程式設計師可以使用 throw 關鍵字來建立**使用者定義的異常**。
每個程式設計師都不是完美的,因此他們無法在編寫 JavaScript 程式碼時不犯任何錯誤。也可能發生程式設計師從使用者那裡獲取輸入,如果使用者輸入無效,則會發生異常。一些內建異常包括算術異常、索引越界異常等。在某些情況下,程式設計師希望建立自己的異常,並且可以使用 try…catch 塊中的 throw 語句來做到這一點。
下面,我們提供了使用 throw 關鍵字在 JavaScript 中的不同示例。
使用 throw 關鍵字建立異常
在本節中,我們將學習如何使用**throw**語句建立簡單的使用者定義異常。當發生任何錯誤時,我們將返回簡單的字串訊息。當我們丟擲錯誤時,程式執行控制權將轉到最近的 catch 塊以處理異常。如果我們沒有定義任何 catch 塊,則程式執行將因異常故障而終止。
語法
使用者可以按照以下語法使用 throw 語句。
try {
// program code
If ( condition ){
throw 'error message';
}
} catch (error) {
// handle user-defined exception.
}示例
在下面的示例中,當我們新增輸入數字並且 10 超過 25 時,我們將丟擲錯誤。我們只丟擲一個錯誤訊息。
<html>
<head>
<title>Example - Use of the throw keyword in JavaScript. </title>
</head>
<body>
<h2>Use of the throw keyword in JavaScript. </h2>
<h4> Program execution flow, when we use the throw keyword to throw an user defined exception. </h4>
<div id="value"></div>
<script>
let value = document.getElementById("value");
try {
value.innerHTML += "control is inside the try block. </br>";
let number = 20;
if (number + 10 > 25) {
// throw error.
throw "number is large, it is not acceptable.";
value.innerHTML += "inside if block. </br>";
}
} catch (error) {
// handling the exception.
value.innerHTML += "inside the catch block. <br/>";
value.innerHTML += "error message is: " + error + " <br/>";
}
</script>
</body>
</html>在上面的輸出中,使用者可以看到由於丟擲錯誤,try 塊的執行將不會完成。控制權轉到 catch 塊並處理錯誤。
使用 throw 語句建立新的錯誤物件
在上一節中,我們建立了簡單的錯誤訊息來丟擲異常,但在本節中,我們將建立新的**使用者定義錯誤物件**。JavaScript 有一個名為 error 的內建類來管理異常。此外,我們可以建立 error 類的物件例項並將錯誤訊息作為引數傳遞。
語法
使用者可以在下面看到丟擲新錯誤物件的語法。
try {
// program code
if ( condition ){
throw new Error("message");
}
} catch (error) {
// handle user-defined exception.
}示例
在下面的示例中,我們正在檢查變數的型別。如果變數型別未定義,我們將丟擲並使用帶錯誤訊息的使用者定義錯誤物件。因此,我們可以在 catch 塊中處理異常。
<html>
<head>
<title>Example - Use of the throw keyword in JavaScript. </title>
</head>
<body>
<h2> Use of the throw statement in JavaScript. </h2>
<h4> Program execution flow, when we use the throw keyword to throw an user defined exception. </h4>
<div id="value"></div>
<script>
let value = document.getElementById("value");
try {
value.innerHTML += "control is inside the try block. </br>";
if (typeof number == "undefined") {
// throw error.
throw new Error("variable is undefined.");
}
value.innerHTML += "terminating the try block. <br/>";
} catch (error) {
value.innerHTML += "inside the catch block. <br/>";
value.innerHTML += error.name + ": " + error.message + " <br/>";
}
</script>
</body>
</html>使用 throw 語句重新丟擲異常
在本節中,我們將不處理 catch 塊中的錯誤,而是從 catch 塊中再次丟擲錯誤。
語法
try {
If ( condition ){
throw new Error("message");
}
} catch (error) {
throw "unknown error."
}示例
在下面的示例中,我們根據條件語句丟擲兩個不同的錯誤。我們在 catch 塊中處理一個錯誤,並在 catch 塊中重新丟擲第二個錯誤。
<html>
<head>
<title> Use of the throw keyword in JavaScript. </title>
</head>
<body>
<h2> Rethrowing the exception using throw Statement </h2>
<h4> Program execution flow, when we use the throw keyword to throw an user defined exception. </h4>
<div id="value"></div>
<script>
let value = document.getElementById("value");
try {
value.innerHTML += "control is inside the try block. </br>";
let a = 20;
let b = 30;
if (a + b > 30) {
throw "large number";
} else if (a + b < 30) {
throw "small number";
}
value.innerHTML += "terminating the try block. <br/>";
} catch (error) {
// handling the exception.
value.innerHTML += "inside the catch block. <br/>";
if (error == "large number") {
value.innerHTML += "handling the large number. <br/>";
} else {
throw "small number exception."
}
}
</script>
</body>
</html>結論
我們已經看到了在不同場景中使用 throw 關鍵字的示例。使用者可以建立使用者定義的異常並根據需要丟擲錯誤訊息。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP