JavaScript--JavaScript 錯誤 - Throw、Try 和 Catch

來源:互聯網
上載者:User

標籤:

JavaScript 錯誤 - Throw、Try 和 Catch

    JS Break
    JS 驗證

try 語句測試代碼塊的錯誤。

catch 語句處理錯誤。

throw 語句建立自訂錯誤。
錯誤一定會發生

當 JavaScript 引擎執行 JavaScript 代碼時,會發生各種錯誤:

可能是語法錯誤,通常是程式員造成的編碼錯誤或錯別字。

可能是拼字錯誤或語言中缺少的功能(可能由於瀏覽器差異)。

可能是由於來自伺服器或使用者的錯誤輸出而導致的錯誤。

當然,也可能是由於許多其他不可預知的因素。
JavaScript 拋出錯誤

當錯誤發生時,當事情出問題時,JavaScript 引擎通常會停止,並產生一個錯誤訊息。

描述這種情況的技術術語是:JavaScript 將拋出一個錯誤。
JavaScript 測試和捕捉

try 語句允許我們定義在執行時進行錯誤測試的代碼塊。

catch 語句允許我們定義當 try 代碼塊發生錯誤時,所執行的代碼塊。

JavaScript 語句 try 和 catch 是成對出現的。
文法

try
  {
  //在這裡運行代碼
  }
catch(err)
  {
  //在這裡處理錯誤
  }

執行個體

在下面的例子中,我們故意在 try 塊的代碼中寫了一個錯字。

catch 塊會捕捉到 try 塊中的錯誤,並執行代碼來處理它。

<!DOCTYPE html>
<html>
<head>
<script>
var txt="";
function message()
{
try
  {
  adddlert("Welcome guest!");
  }
catch(err)
  {
  txt="There was an error on this page.\n\n";
  txt+="Error description: " + err.message + "\n\n";
  txt+="Click OK to continue.\n\n";
  alert(txt);
  }
}
</script>
</head>

<body>
<input type="button" value="View message" onclick="message()">
</body>

</html>


Throw 語句

throw 語句允許我們建立自訂錯誤。

正確的技術術語是:建立或拋出異常(exception)。

如果把 throw 與 try 和 catch 一起使用,那麼您能夠控製程序流,並產生自訂的錯誤訊息。
文法

throw exception

異常可以是 JavaScript 字串、數字、邏輯值或對象。
執行個體

本例檢測輸入變數的值。如果值是錯誤的,會拋出一個異常(錯誤)。catch 會捕捉到這個錯誤,並顯示一段自訂的錯誤訊息:

<script>
function myFunction()
{
try
  {
  var x=document.getElementById("demo").value;
  if(x=="")    throw "empty";
  if(isNaN(x)) throw "not a number";
  if(x>10)     throw "too high";
  if(x<5)      throw "too low";
  }
catch(err)
  {
  var y=document.getElementById("mess");
  y.innerHTML="Error: " + err + ".";
  }
}
</script>

<h1>My First JavaScript</h1>
<p>Please input a number between 5 and 10:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="mess"></p>


請注意,如果 getElementById 函數出錯,上面的例子也會拋出一個錯誤。


++++++++++++++++++++++++++++++++++++++++++++++++++++

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html charset=utf-8"/>
<head>
<script>
var txt="";
function message()
{
try
  {
  adddlert("Welcome guest!");
  }
catch(err)
  {
  txt="本頁有一個錯誤。\n\n";
  txt+="錯誤描述:" + err.message + "\n\n";
  txt+="點擊確定繼續。\n\n";
  alert(txt);
  }
}
</script>
</head>

<body>
<input type="button" value="查看訊息" onclick="message()" />
</body>

</html>

++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html charset=utf-8"/>
<body>













<script type="text/javascript">
    function myFunction()
    {
        try
        {
        var x = document.getElementById("demo").value;
        if("") throw "值為空白";
        if(isNaN(x)) throw "不是數字";
        if(x>10) throw "值太大";
        if(x<5) throw "值太小";
        }
    
    catch(err)
        {
        var y = document.getElementById("mess");
        y.innerHTML = "錯誤:" + err + "。";
        }
    }

</script>
    <h1>我的第一個 javascript 程式</h1>
    <p>請輸入 5 到 10 之間的數字:</p>
    <input id="demo" type="text">
    <button type ="button" onclick = "myFunction()">測試輸入值</button>
    <p id = "mess"></p>

</body>
</html>


JavaScript--JavaScript 錯誤 - Throw、Try 和 Catch

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.