JavaScript 中的 .stack 屬性有什麼用?
JavaScript 中的 Stack 屬性用於儲存和跟蹤錯誤,並儲存錯誤型別、錯誤發生位置以及錯誤原因等資訊。錯誤源路徑也儲存在 JavaScript 中的堆疊中。
Stack 是 JavaScript 中的錯誤類屬性,它也用於儲存呼叫的函式以及函式呼叫的順序。顯示的錯誤格式如下:首先,在第一行顯示錯誤型別,然後列印冒號,然後列印錯誤發生的原因。在第二行將顯示錯誤發生的位置。
錯誤格式
這是引發引用錯誤時顯示的格式。
Uncaught ReferenceError ReferenceError: showStack is not defined //type:reason at onclick (c:\Users\abdur\Desktop\demo2\aaa.html:31:35) // location of error
示例 1
以下示例演示了 stack 屬性的用法。
function demo() { throw new Error("error"); } try{ demo() } catch(e) { console.log(e.stack) } demo();
注意 - Stack 是一個非標準屬性,可能並非所有環境都可用。
示例 2
以下示例建立並丟擲一個使用者定義的錯誤,檢索並顯示生成的錯誤(物件)的 stack 屬性 -
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Stack Property - Error class</title> </head> <body> <script> function showStack() { var value = document.getElementById("input").value; try { if (isNaN(value)) throw new Error('This is not a number'); } catch (e) { document.getElementById('a').innerHTML = e.stack; } } </script> <h3> Shows error if input is given wrong. </h3> <h5>Enter a integer</h5> <input type="text" id="input"> <button type="submit" value="Click" onclick="showStack()" style="width:60px;height:30px"> Press </button> <p id="a"></p> </body> </html>
執行上述程式時,會顯示一個文字框和一個按鈕,上面寫著“按下”。
如果輸入非數值並點選按鈕,則會生成錯誤,並顯示生成的錯誤(類)的堆疊內容。
在上述示例中,輸入需要為整數。但是,如果使用者輸入的不是數字,則 stack 屬性將儲存錯誤並列印程式中的所有錯誤,以及錯誤的位置和型別。
示例 3
現在,讓我們檢索並列印預定義錯誤的內容。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Predefined Error</title> <script> function showStack() { try { writeFC(); } catch (e) { document.getElementById('a').innerHTML = e.stack ; } } function rightFC() { document.getElementById('a').innerHTML = e.stack ; } </script> </head> <body> <center> <h3>TUTORIALS POINT</h3> <p>Predefined error in JavaScript</p> <button onclick="showStack()">Press</button> <div id="erRes"></div> <p id="a"></p> </center> </body> </html>
在上面的示例中,錯誤被引發並列印為堆疊的內容。在此示例中,當呼叫錯誤的函式時,將顯示上述輸出。呼叫未在程式中定義的 writeFC() 函式而不是 rightFC() 函式。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP