JS的try-catch語句與錯誤類型使用
這次帶給大家JS的try-catch語句與錯誤型別使用,JS的try-catch語句與錯誤型別使用注意事項有哪些,以下就是實戰案例,一起來看一下。
應用程式邏輯總是知道呼叫某個特定函數的原因,因此也是最適合處理錯誤的。千萬不要將try-catch中的catch區塊留空,你應該總是寫點什麼來處理錯誤。例如,不要像下面這樣做:
try { somethingThatMightCauseAnError(); } catch (ex) { // do nothing}
如果知道可能要發生錯誤,那麼肯定知道如何從錯誤中恢復。確切地說,如何從錯誤中恢復在開發模式中與實際放到生產環境中是不一樣的,沒關係。最重要的是,你實在處理錯誤,而不是忽略它。
ECMA-262規格指出了7種錯誤類型。當不同錯誤條件發生時,這些類型在JS引擎中都有用到,當然我們也可以手動建立它們。
Error: 所有錯誤的基本型別。實際上引擎從來不會拋出該類型的錯誤。
EvalError: 透過eval()函數執行程式碼發生錯誤時拋出。
RangeError: 當一個數字超出它的邊界時拋出-例如,試圖建立長度為-20的陣列(new Array(-20);)。該錯誤在正常的程式碼執行中非常罕見。
ReferenceError: 期望的物件不存在時拋出-例如,試圖在一個null物件參考上呼叫函數。
SyntaxError: 程式碼有語法錯誤時拋出。
TypeError: 變數不是期望的型別時拋出。例如,new 10或'prop' in true。
URIError: 給encodeURI()、encodeURIComponent()、decodeURI()或decodeURIComponent()等函數傳遞格式非法的URI字串時拋出。
理解錯誤的不同類型可以幫助我們更容易處理它。所有的錯誤類型都繼承自Error,所以用instanceof Error檢查其類型得不到任何有用的信息。透過檢查特定的錯誤類型可以更可靠地處理錯誤。
try { // 有些代码引发了错误} catch (ex) { if (ex instanceof TypeError) { // 处理TypeError错误 } else if (ex instanceof ReferenceError) { // 处理ReferenceError错误 } else { // 其他处理 } }
如果拋出自己的錯誤,並且是資料類型而不是一個錯誤,你可以非常輕鬆地區分自己的錯誤和瀏覽器的錯誤類型的不同。但是,拋出實際類型的錯誤與拋出其他類型的物件相比,有幾大優點。
首先,如上討論,在瀏覽器正常錯誤處理機制中會顯示錯誤訊息。其次,瀏覽器為拋出的Error物件附加了一些額外的資訊。這些資訊不同瀏覽器各不相同,但它們為錯誤提供瞭如行、列號等上下文訊息,在有些瀏覽器中也提供了堆疊和原始碼資訊。當然,如果用了Error的建構器,你就喪失了區分自己拋出的錯誤和瀏覽器錯誤的能力。
解決方案就是建立自己的錯誤類型,讓它繼承自Error。這種做法允許你提供額外的信息,同時可區別於瀏覽器拋出的錯誤。可以用如下的模式來建立自訂的錯誤類型。
function MyError (message) { this.message = message; } MyError.prototype = new Error();
這段程式碼有兩個重要的部分:message屬性,瀏覽器必須要知道的錯誤訊息字串;設定prototype為Error的一個實例,這樣對JS引擎而言就標識它是一個錯誤對象了。接下來就可以拋出一個MyError的實例對象,讓瀏覽器能像處理原生錯誤一樣做出回應。
throw new MyError('Hello World!');
提醒一下,該方法在IE8和更早的瀏覽器中不顯示錯誤訊息。相反,會看見那個通用的「Exception thrown but not caught」訊息。這個方法最大的好處是,自訂錯誤類型可以偵測自己的錯誤。
try { // 有些代码引发了错误} catch (ex) { if (ex instanceof MyError) { // 处理自己的错误 } else { // 其他处理 } }
如果總是捕捉你自己拋出的所有錯誤,那麼IE的那點兒小愚蠢也不足為奇了。在一個正確的錯誤處理系統中獲得的好處是巨大的。此方法可以給出更多、更靈活的訊息,告知開發者如何正確地處理錯誤。
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是JS的try-catch語句與錯誤類型使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

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

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

磁力連結是一種用於下載資源的連結方式,相較於傳統的下載方式更為便利和有效率。使用磁力連結可以透過點對點的方式下載資源,而不需要依賴中介伺服器。本文將介紹磁力連結的使用方法及注意事項。一、什麼是磁力連結磁力連結是一種基於P2P(Peer-to-Peer)協定的下載方式。透過磁力鏈接,使用者可以直接連接到資源的發布者,從而完成資源的共享和下載。與傳統的下載方式相比,磁

mdf檔案和mds檔案怎麼用隨著電腦科技的不斷進步,我們可以透過多種方式來儲存和共享資料。在數位媒體領域,我們經常會遇到一些特殊的文件格式。在這篇文章中,我們將討論一種常見的文件格式—mdf和mds文件,並介紹它們的使用方法。首先,我們需要了解mdf檔案和mds檔案的含義。 mdf是CD/DVD鏡像檔的副檔名,而mds檔則是mdf檔的元資料檔。

CrystalDiskMark是一款適用於硬碟的小型HDD基準測試工具,可快速測量順序和隨機讀取/寫入速度。接下來就讓小編為大家介紹一下CrystalDiskMark,以及crystaldiskmark如何使用吧~一、CrystalDiskMark介紹CrystalDiskMark是一款廣泛使用的磁碟效能測試工具,用於評估機械硬碟和固態硬碟(SSD)的讀取和寫入速度和隨機I/O性能。它是一款免費的Windows應用程序,並提供用戶友好的介面和各種測試模式來評估硬碟效能的不同方面,並被廣泛用於硬體評

foobar2000是一款能隨時收聽音樂資源的軟體,各種音樂無損音質帶給你,增強版本的音樂播放器,讓你得到更全更舒適的音樂體驗,它的設計理念是將電腦端的高級音頻播放器移植到手機上,提供更便捷高效的音樂播放體驗,介面設計簡潔明了易於使用它採用了極簡的設計風格,沒有過多的裝飾和繁瑣的操作能夠快速上手,同時還支持多種皮膚和主題,根據自己的喜好進行個性化設置,打造專屬的音樂播放器支援多種音訊格式的播放,它還支援音訊增益功能根據自己的聽力情況調整音量大小,避免過大的音量對聽力造成損害。接下來就讓小編為大

輕鬆上手:如何使用pip鏡像來源隨著Python在全球的普及,pip成為了Python套件管理的標準工具。然而,許多開發者在使用pip安裝套件時面臨的常見問題是速度慢。這是因為預設情況下,pip從Python官方來源或其他外部來源下載包,而這些來源可能位於海外伺服器,導致下載速度緩慢。為了提高下載速度,我們可以使用pip鏡像來源。什麼是pip鏡像來源?簡單來說,就

MetaMask(中文也叫小狐狸錢包)是一款免費的、廣受好評的加密錢包軟體。目前,BTCC已支援綁定MetaMask錢包,綁定後可使用MetaMask錢包進行快速登錄,儲值、買幣等,且首次綁定還可獲得20USDT體驗金。在BTCCMetaMask錢包教學中,我們將詳細介紹如何註冊和使用MetaMask,以及如何在BTCC綁定並使用小狐狸錢包。 MetaMask錢包是什麼? MetaMask小狐狸錢包擁有超過3,000萬用戶,是當今最受歡迎的加密貨幣錢包之一。它可免費使用,可作為擴充功能安裝在網絡

在如今雲端儲存已成為我們日常生活和工作中不可或缺的一部分。百度網盤作為國內領先的雲端儲存服務之一,憑藉其強大的儲存功能、高效的傳輸速度以及便捷的操作體驗,贏得了廣大用戶的青睞。而且無論你是想要備份重要文件、分享資料,還是在線上觀看影片、聽取音樂,百度網盤都能滿足你的需求。但很多用戶可能對百度網盤app的具體使用方法還不了解,那麼這篇教學就將為大家詳細介紹百度網盤app如何使用,還有疑惑的用戶們就快來跟著本文詳細了解一下吧!百度雲網盤怎麼用:一、安裝首先,下載並安裝百度雲軟體時,請選擇自訂安裝選

網易郵箱,作為中國網友廣泛使用的一種電子郵箱,一直以來以其穩定、高效的服務贏得了用戶的信賴。而網易信箱大師,則是專為手機使用者打造的信箱軟體,它大大簡化了郵件的收發流程,讓我們的郵件處理變得更加便利。那麼網易信箱大師該如何使用,具體又有哪些功能呢,下文中本站小編將為大家帶來詳細的內容介紹,希望能幫助到大家!首先,您可以在手機應用程式商店搜尋並下載網易信箱大師應用程式。在應用寶或百度手機助手中搜尋“網易郵箱大師”,然後按照提示進行安裝即可。下載安裝完成後,我們打開網易郵箱帳號並進行登錄,登入介面如下圖所示
