從Javascript3.0中添加了異常處理機制,可以采用從java語言中移植過來的模型使用try--catch--finally語句進行異常的處理檀蹋。
其中包括(try...catch...finally語句)菜循、Error對象、使用throw語句拋出異常等
使用try...catch...finally語句拋出異常
正確代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>try_catch</title>
</head>
<body>
<script>
var str = 'i like Javascript'
try{
//在頁面上輸出字符串中的下標為5的字符。
document.write(str.charAt(5)) //執(zhí)行成功耻煤,在頁面輸出字符串第5位的內(nèi)容晾匠,然后執(zhí)行finally中的語句
}catch(exception){
//當有錯誤發(fā)生時,彈窗輸出下列語句
alert('運行時有異常發(fā)生')
//TODO handle the exception
}finally{
alert('結(jié)束try...catch...finally語句')
}
</script>
</body>
</html>
拋出異常代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>try_catch</title>
</head>
<body>
<script>
var str = 'i like Javascript'
try{
//在頁面上輸出字符串中的下標為5的字符茶袒。
document.write(str.charat(5)) //字符串的函數(shù)名書寫錯誤,發(fā)生異常凉馆,執(zhí)行catch中的語句
}catch(exception){
//當有錯誤發(fā)生時,彈窗輸出下列語句
alert('運行時有異常發(fā)生')
//TODO handle the exception
}finally{
alert('結(jié)束try...catch...finally語句')
}
</script>
</body>
</html>
image.png
分析可知薪寓,當try語句塊中包含的語句出現(xiàn)錯誤的時候,跳出try語句執(zhí)行catch語句塊中的內(nèi)容澜共,然后如果存在finally語句塊向叉,則最后執(zhí)行finally語句塊中的內(nèi)容。
Error對象
try...catch...finally語句中的catch通常捕捉到的對象為Error對象嗦董,當運行JavaScript代碼時母谎,如果產(chǎn)生了錯誤或者異常,JavaScript就會生成一個Error對象的實例來描述錯誤京革。該實例包含了一些特定的錯誤信息奇唤。
Error對象有以下兩個屬性。
name:表示異常類型的字符串
message:實際的錯誤信息
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>try_catch</title>
</head>
<body>
<script>
var str = 'i like Javascript'
try{
//在頁面上輸出字符串中的下標為5的字符匹摇。
document.write(str.charat(5)) //字符串的函數(shù)名書寫錯誤咬扇,發(fā)生異常,執(zhí)行catch中的語句
// document.write(str.charAt(5)) //執(zhí)行成功廊勃,在頁面輸出字符串第5位的內(nèi)容懈贺,然后執(zhí)行finally中的語句
}catch(exception){
//當有錯誤發(fā)生時,彈窗輸出下列語句
alert('實際的錯誤信息為:'+exception.message + '\n錯誤類型為'+exception.name)
//TODO handle the exception
}finally{
alert('結(jié)束try...catch...finally語句')
}
</script>
</body>
</html>
image.png
使用throw語句拋出異常
有些JavaScript代碼并沒有語法上的錯誤,但是又邏輯錯誤供搀,對于這種錯誤隅居,JavaScript不會拋出異常,這時候需要我們自己定義一個Error對象的實例葛虐,并使用throw語句來拋出異常胎源。在程序中我們可以通過使用throw語句有目的的拋出異常,其語法格式如下屿脐。
throw new Error('somestatements')
參數(shù)說明:
throw:拋出異常關(guān)鍵字
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>try_catch</title>
</head>
<body>
<script>
var str = 'i like Javascript'
try{
var num = 1/0;
if (num == 'Infinity'){
throw new Error('除數(shù)不可以為0')
}
}catch(exception){
//當有錯誤發(fā)生時,彈窗輸出下列語句
alert('實際的錯誤信息為:'+exception.message + '\n錯誤類型為'+exception.name)
//TODO handle the exception
}finally{
alert('結(jié)束try...catch...finally語句')
}
</script>
</body>
</html>
image.png
原文鏈接:https://blog.csdn.net/qq_32670879/article/details/82530164