您好,登錄后才能下訂單哦!
這篇文章主要介紹JavaScript中錯誤處理try..catch...finally+涵蓋throw+TypeError+RangeError的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
通常,如果發生錯誤,腳本就會立即停止,并在控制臺將錯誤打印出來。
有了這個語句就可以捕獲錯誤并執行合理操作,可以讓程序繼續執行下去
try { // 代碼... } catch (err) { //err是有關錯誤詳細信息的對象 // 錯誤捕獲,上面代碼報錯就會轉到這個代碼塊,而不會停止運行 } finally { //無論是否有異常拋出或捕獲它總是執行 }
這種語句可以嵌套
Catch
捕獲所有 error
。
如果我們不知道如何處理它,那我們就 throw err
。
throw
操作符會生成一個 error
對象。
用來拋出一個用戶自定義的異常。當前函數的執行將被停止(throw之后的語句將不會執行),并且控制將被傳遞到調用堆棧中的第一個Catch塊。如果調用者函數中沒有catch塊,程序將會終止。
示例:
throw "Error1"; // 拋出了一個值為字符串的異常 throw 4; // 拋出了一個值為整數4的異常 /*JavaScript 中有很多內建的標準 error 的構造器:Error,SyntaxError,ReferenceError,TypeError 等。我們也可以使用它們來創建 error 對象。*/ let error = new Error("Things happen o_O"); alert(error.name); // Error alert(error.message); // Things happen o_O //json的異常 try { JSON.parse("{ bad json o_O }"); } catch(e) { alert(e.name); // SyntaxError alert(e.message); // Unexpected token b in JSON at position 2 }
補充:
try塊的代碼可能會拋出三種異常:TypeError
,RangeError
,SyntaxError
有同學可能不知道這三個的意思,這里說明下
這兩個都是全局對象,全局的對象本身不包含任何方法, 然而它通過原型鏈繼承了一些方法.
instanceof 操作符用于判斷錯誤類型:
TypeError
:(類型錯誤)對象用來表示值的類型非預期類型時發生的錯誤
RangeError
: 對象標明一個錯誤,當一個值不在其所允許的范圍或者集合中
SyntaxError
: 當Javascript語言解析代碼時,Javascript引擎發現了不符合語法規范的tokens或token順序時拋出
實例:
catch (e) {//以下是這個對象的參數屬性 console.log(e instanceof TypeError); // true console.log(e.message); // "描述此錯誤" console.log(e.name); // "TypeError" console.log(e.fileName); // "引起該異常的代碼所在的文件的名字" console.log(e.lineNumber); // 引起該異常的代碼的行號 }
以上是“JavaScript中錯誤處理try..catch...finally+涵蓋throw+TypeError+RangeError的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。