JS錯(cuò)誤處理與調(diào)試操作實(shí)例分析
本文實(shí)例講述了JS錯(cuò)誤處理與調(diào)試操作。分享給大家供大家參考,具體如下:
JavaScript 錯(cuò)誤 - throw、try 和 catch
try 語(yǔ)句測(cè)試代碼塊的錯(cuò)誤。
catch 語(yǔ)句處理錯(cuò)誤。
throw 語(yǔ)句創(chuàng)建自定義錯(cuò)誤。
finally 語(yǔ)句在 try 和 catch 語(yǔ)句之后,無(wú)論是否有觸發(fā)異常,該語(yǔ)句都會(huì)執(zhí)行。
JavaScript try 和 catch
try 語(yǔ)句允許我們定義在執(zhí)行時(shí)進(jìn)行錯(cuò)誤測(cè)試的代碼塊。
catch 語(yǔ)句允許我們定義當(dāng) try 代碼塊發(fā)生錯(cuò)誤時(shí),所執(zhí)行的代碼塊。
JavaScript 語(yǔ)句 try 和 catch 是成對(duì)出現(xiàn)的。
語(yǔ)法
try { ... //異常的拋出 } catch(e) { ... //異常的捕獲與處理 } finally { ... //結(jié)束處理 }
例:
var txt=''; function message() { try { adddlert('Welcome guest!'); } catch(err) { txt='本頁(yè)有一個(gè)錯(cuò)誤。nn'; txt+='錯(cuò)誤描述:' + err.message + 'nn'; txt+='點(diǎn)擊確定繼續(xù)。nn'; alert(txt); } }
finally 語(yǔ)句
finally 語(yǔ)句不論之前的 try 和 catch 中是否產(chǎn)生異常都會(huì)執(zhí)行該代碼塊。
<input type='text'><button type='button' οnclick='myFunction()'>點(diǎn)我</button><p id='p01'></p><script>function myFunction() { var message, x; message = document.getElementById('p01'); message.innerHTML = ''; x = document.getElementById('demo').value; try { if(x == '') throw '值是空的'; if(isNaN(x)) throw '值不是一個(gè)數(shù)字'; x = Number(x); if(x > 10) throw '太大'; if(x < 5) throw '太小'; } catch(err) { message.innerHTML = '錯(cuò)誤: ' + err + '.'; } finally { document.getElementById('demo').value = ''; }}</script>
Throw 語(yǔ)句
throw 語(yǔ)句允許我們創(chuàng)建自定義錯(cuò)誤。
正確的技術(shù)術(shù)語(yǔ)是:創(chuàng)建或拋出異常(exception)。
如果把 throw 與 try 和 catch 一起使用,那么您能夠控制程序流,并生成自定義的錯(cuò)誤消息。
語(yǔ)法
throw exception
異常可以是 JavaScript 字符串、數(shù)字、邏輯值或?qū)ο蟆?/p>
實(shí)例
本例檢測(cè)輸入變量的值。如果值是錯(cuò)誤的,會(huì)拋出一個(gè)異常(錯(cuò)誤)。catch 會(huì)捕捉到這個(gè)錯(cuò)誤,并顯示一段自定義的錯(cuò)誤消息:
function myFunction() { var message, x; message = document.getElementById('message'); message.innerHTML = ''; x = document.getElementById('demo').value; try { if(x == '') throw '值為空'; if(isNaN(x)) throw '不是數(shù)字'; x = Number(x); if(x < 5) throw '太小'; if(x > 10) throw '太大'; } catch(err) { message.innerHTML = '錯(cuò)誤: ' + err; }}
JavaScript 調(diào)試工具
在程序代碼中尋找錯(cuò)誤叫做代碼調(diào)試。
調(diào)試很難,但幸運(yùn)的是,很多瀏覽器都內(nèi)置了調(diào)試工具。
內(nèi)置的調(diào)試工具可以開始或關(guān)閉,嚴(yán)重的錯(cuò)誤信息會(huì)發(fā)送給用戶。
有了調(diào)試工具,我們就可以設(shè)置斷點(diǎn) (代碼停止執(zhí)行的位置), 且可以在代碼執(zhí)行時(shí)檢測(cè)變量。
瀏覽器啟用調(diào)試工具一般是按下 F12 鍵,并在調(diào)試菜單中選擇 'Console' 。
console.log() 方法
如果瀏覽器支持調(diào)試,你可以使用 console.log() 方法在調(diào)試窗口上打印 JavaScript 值:
實(shí)例
a = 5;b = 6;c = a + b;console.log(c);
設(shè)置斷點(diǎn)
在調(diào)試窗口中,你可以設(shè)置 JavaScript 代碼的斷點(diǎn)。
在每個(gè)斷點(diǎn)上,都會(huì)停止執(zhí)行 JavaScript 代碼,以便于我們檢查 JavaScript 變量的值。
在檢查完畢后,可以重新執(zhí)行代碼(如播放按鈕)。
debugger 關(guān)鍵字
debugger 關(guān)鍵字用于停止執(zhí)行 JavaScript,并調(diào)用調(diào)試函數(shù)。
這個(gè)關(guān)鍵字與在調(diào)試工具中設(shè)置斷點(diǎn)的效果是一樣的。
如果沒(méi)有調(diào)試可用,debugger 語(yǔ)句將無(wú)法工作。
開啟 debugger ,代碼在第三行前停止執(zhí)行。
實(shí)例
var x = 15 * 5; debugger; document.getElementbyId('demo').innerHTML = x;
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript傳值操作技巧總結(jié)》、《javascript編碼操作技巧總結(jié)》、《JavaScript中json操作技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫特效與技巧匯總》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章:
1. 以PHP代碼為實(shí)例詳解RabbitMQ消息隊(duì)列中間件的6種模式2. html小技巧之td,div標(biāo)簽里內(nèi)容不換行3. PHP字符串前后字符或空格刪除方法介紹4. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法5. nestjs實(shí)現(xiàn)圖形校驗(yàn)和單點(diǎn)登錄的示例代碼6. AspNetCore&MassTransit Courier實(shí)現(xiàn)分布式事務(wù)的詳細(xì)過(guò)程7. XML入門的常見問(wèn)題(一)8. jsp cookie+session實(shí)現(xiàn)簡(jiǎn)易自動(dòng)登錄9. css進(jìn)階學(xué)習(xí) 選擇符10. Echarts通過(guò)dataset數(shù)據(jù)集實(shí)現(xiàn)創(chuàng)建單軸散點(diǎn)圖
