與Java語言相同,JavaScript可以透過throw語句來拋出例外。與Java語言不同的是,JavaScript中可以透過throw語句拋出所有類型的值,而不僅止於拋出錯誤物件。
//Throw an Error object.
try{
throw new Error("Message in Error Object");
}catch(e){
console.log(e);//Error: Message in Error Object
}
try{
throw "Raw Message";
}catch(message){
console.log(message);//Raw Message
console.log(typeof message);//string
}
try{
throw 42;
}catch(code){
console.log(code);//42
console.log(typeof code);//number
}
與Java語言一樣,如果異常沒有被任何catch語句所捕捉,那麼該異常會最終拋給使用者:
try{
//throw new Error("test error");//Error will be thrown. Error: test error
}finally{
}
try{
throw 42;//Error will be thrown. Error: 42
}finally{
}
對於拋出例外的捕捉,JavaScript使用的也是try/catch/finally語句,其使用規則為:try是必需的,catch和finally均為可選語句,但catch和finally中必須至少出現一個。
在catch語句中,可以定義一個參數e(或其它任何合法的變數名稱),用於儲存拋出的異常值。在catch語句內部,這個參數可以當作局部變數而使用。與JavaScript中其它的變數使用情況不同的是,catch語句中的參數變數僅在catch語句內部有效(該變數的作用域限制在catch語句中)。
對於finally語句,無論try中是否有異常拋出,finally中的程式碼都會被執行。詳細情況包括:
1.try中無異常發生,當try語句執行完畢後,finnally中的程式碼將會執行。
2.try中沒有異常發生,但由於執行了break、continue或return語句而導致退出try程式碼時,finally中的程式碼將被執行。
3.try中發生異常,異常由catch語句處理完成後,finally中的程式碼執行。
4.try中發生異常,但因沒有catch語句導致該異常需要繼續向上拋出時,finally中的程式碼將被執行。值得注意的是,在catch語句缺失的情況下,JavaScript會先執行finally中的程式碼,然後再向上繼續拋出例外。
在finally程式碼中,如果出現break、continue或return語句,那麼JavaScript將直接執行這些語句,而置try程式碼中可能存在的break、continue或return語句於不顧;即使catch語句缺失導致有異常需要上報,JS也會丟棄這個異常上報訊息,繼續執行finally程式碼中的break、continue或return語句。類似的,如果finally程式碼中也拋出了異常,那麼JavaScript將丟棄所有try程式碼中的break、continue或return語句,同時也丟棄可能存在的異常上報行為,只拋出finally程式碼中的例外。

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

記事本++7.3.1
好用且免費的程式碼編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境