try ... catch語句標(biāo)記要嘗試的語句塊,并指定在拋出異常(錯(cuò)誤)時(shí)的響應(yīng)。
try語句由一個(gè)try塊組成,其中包含一個(gè)或多個(gè)語句。{}必須始終用于單個(gè)語句。
必須至少存在一個(gè)catch子句或finally子句。這為try語句提供了三種形式:
try...catch
try...finally
try...catch...finally
使用try語句可以定義一個(gè)代碼塊,該代碼塊在執(zhí)行時(shí)將進(jìn)行錯(cuò)誤測試。
catch語句允許您定義將要執(zhí)行的代碼塊,如果在try塊發(fā)生錯(cuò)誤。
finally聲明中,在try和catch后,無論結(jié)果如何,您可以執(zhí)行的代碼。
注意: catch和finally語句都是可選的,但是在使用try語句時(shí),您需要使用其中之一(如果不能同時(shí)使用的話)。
使用throw語句創(chuàng)建自定義錯(cuò)誤(拋出異常)。如果將throw和try 和 catch一起使用,則可以指定程序流并生成自定義錯(cuò)誤消息(請參見下面的“更多示例”)。
您可以在我們的JavaScript異常教程中了解有關(guān)異常的更多信息。
try { //try_statements-要嘗試的語句 } catch(err) { //catch_statements-處理錯(cuò)誤的語句 } finally { //finally_statements-無論try / catch結(jié)果如何,都要執(zhí)行的語句 }
try { aaalert("Hello world"); } catch(err) { document.getElementById("result").innerHTML = err; }測試看看?/?
所有瀏覽器完全支持try ... catch語句:
Statement | ![]() | ![]() | ![]() | ![]() | ![]() |
try...catch | 是 | 是 | 是 | 是 | 是 |
參數(shù) | 描述 |
---|---|
try_statements | 要執(zhí)行的語句。 |
err | 持有關(guān)聯(lián)的catch子句的異常對象的標(biāo)識(shí)符。請參考錯(cuò)誤對象。 |
catch_statements | (可選)在try塊中引發(fā)異常時(shí)執(zhí)行的語句。如果沒有錯(cuò)誤發(fā)生,則永遠(yuǎn)不會(huì)執(zhí)行此代碼塊。 |
finally_statements | (可選)在try語句完成之后執(zhí)行的語句。無論是否引發(fā)異?;虿东@異常,這些語句都會(huì)執(zhí)行。 |
JavaScript版本: | ECMAScript 3 |
---|
在finally聲明中,您可以執(zhí)行代碼,try和catch后,無論結(jié)果如何:
try { aaalert("Hello world"); } catch(err) { document.getElementById("result").innerHTML = err; } finally { document.getElementById("result").innerHTML += "<h3>Finally statement executed</h3>"; }測試看看?/?
catch和finally語句都是可選的,但是在使用try語句時(shí),您需要使用其中之一(如果不能同時(shí)使用):
try { aaalert("Hello world"); } finally { document.getElementById("result").innerHTML = "最終執(zhí)行語句"; }測試看看?/?
使用throw語句創(chuàng)建一個(gè)自定義錯(cuò)誤(引發(fā)異常):
function getRectArea(width, height) { if (isNaN(width) || isNaN(height)) { throw "參數(shù)不是數(shù)字!"; } } try { getRectArea(5, 'Z'); } catch(err) { document.getElementById('para').innerHTML = err; }測試看看?/?
檢查輸入,如果值錯(cuò)誤,則引發(fā)異常(err)。catch語句捕獲異常(err),并顯示自定義錯(cuò)誤消息:
var x = document.querySelector("input").value; try { if(x == "") throw "is Empty"; if(isNaN(x)) throw "Not a Number"; if(x > 10) throw "too High"; if(x < 5)throw "too Low"; } catch(err) { document.getElementById("para").innerHTML = "Input " + err; }測試看看?/?
JavaScript教程:JavaScript異常
JavaScript參考:JavaScript錯(cuò)誤對象
JavaScript參考:JavaScript throw語句