
Either you run the day, or the day runs you.
你不掌握時間,時間就會折磨你。
當(dāng) JavaScript 引擎執(zhí)行 JavaScript 代碼時,會發(fā)生各種錯誤:
- 可能是語法錯誤,通常是程序員造成的編碼錯誤或錯別字
- 可能是拼寫錯誤或語言中缺少的功能(可能由于瀏覽器差異)
- 可能是由于來自服務(wù)器或用戶的錯誤輸出而導(dǎo)致的錯誤
- 當(dāng)然,也可能是由于許多其他不可預(yù)知的因素
- ...
JavaScript 錯誤處理三大關(guān)鍵詞 - throw、try 和 catch
- try - 語句測試代碼塊的錯誤
- catch - 語句處理錯誤
- throw - 語句創(chuàng)建自定義錯誤
JavaScript 拋出(throw)錯誤
當(dāng)錯誤發(fā)生時,當(dāng)事情出問題時,JavaScript 引擎通常會停止,并生成一個錯誤消息;
描述這種情況的技術(shù)術(shù)語是:JavaScript 將拋出一個錯誤。
Throw 語句
throw 語句允許我們創(chuàng)建自定義錯誤;
正確的技術(shù)術(shù)語是:創(chuàng)建或拋出異常(exception);
如果把 throw 與 try 和 catch 一起使用,那么您能夠控制程序流,并生成自定義的錯誤消息。
Throw 語法
throw exception
catch 會捕捉到這個錯誤,并顯示一段自定義的錯誤消息:
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 + ".";
}
JavaScript try 和 catch
try 語句允許我們定義在執(zhí)行時進(jìn)行錯誤測試的代碼塊;
catch 語句允許我們定義當(dāng) try 代碼塊發(fā)生錯誤時,所執(zhí)行的代碼塊;
catch 塊會捕捉到 try 塊中的錯誤,并執(zhí)行代碼來處理它;
JavaScript 語句 try 和 catch 是成對出現(xiàn)的。
語法
try
{
//在這里運行代碼
}
catch(err)
{
//在這里處理錯誤
}
實例
try
{
errAlert("Welcome guest!");
}
catch(err)
{
txt="本頁有一個錯誤。\n\n";
txt+="錯誤描述:" + err.message + "\n\n";
txt+="點擊確定繼續(xù)。\n\n";
alert(txt);
}
因為 errAlert() 函數(shù)未定義,所以會報錯,錯誤信息為:errAlert is not defined