国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Javascript程序異常處理

這篇具有很好參考價值的文章主要介紹了Javascript程序異常處理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

什么是異常,異常就是我們在編寫Javascript程序時出現(xiàn)的一些錯誤,并會在控制臺中拋出這個錯誤,出現(xiàn)異常其實并不是一件壞事,相對的呢它可以提醒我們開發(fā)人員哪里出現(xiàn)了錯誤,方便我們后續(xù)的修改,能讓我們的代碼更加的流暢絲滑的運行,如果你對程序異常還不了解,看完該篇會讓你對異常有一個初步的了解,也能在出現(xiàn)異常時做出相應的處理。

目錄

1.異常的分類

?2.異常的執(zhí)行流程

?3.捕獲異常

?4.手動拋出異常

?5.總結


1.異常的分類

在Javascript中,異常通常表現(xiàn)為一個對象,不同的對象表達了不同的異常類型,不同類型的異常對應著不同的錯誤。

異常類型 含義
SyntaxError?? 語法錯誤
ReferenceError 引用錯誤,使用了不存在的變量或函數(shù)
TypeError

類型錯誤,往往是使用了一個對象中不存在的成員?

RangeError 范圍錯誤,通常在操作超出有效范圍時發(fā)生,如數(shù)組訪問超出邊界
URIError URI錯誤,通常發(fā)生在encodeURI()或者decodeURI()等方法時給出無效的URI時發(fā)生
EvalError eval錯誤,通常在eval()函數(shù)中執(zhí)行代碼時發(fā)生錯誤
InternalError 內部錯誤,通常發(fā)生在Javascript引擎內部發(fā)生錯誤導致

舉幾個常見的錯誤類型的例子

1.語法錯誤

 const user = [name: 'zs', age: 18]

我上面的這段代碼是一個很明顯的語法錯誤,錯把數(shù)組當成了對象來存儲數(shù)據(jù),這時候控制臺就會報語法錯誤的提示

Javascript程序異常處理,前端,javascript,javascript,開發(fā)語言

?2.引用錯誤

 function get() {
      console.log(111);
    }
 set()

我這段代碼定義了一個get()函數(shù),但是我們調用的是set()方法,看控制臺的報錯信息

Javascript程序異常處理,前端,javascript,javascript,開發(fā)語言

?3.類型錯誤

let arr = { name: '111' }
arr.push(222)

?我這里定義了一個對象,但是后續(xù)調用了push()方法,這個方法只有數(shù)組才有的,所以此時就會報這個類型錯誤

Javascript程序異常處理,前端,javascript,javascript,開發(fā)語言

?其實呢,所有的錯誤都是以對象形式存在的,比如我們也可以自定義一個錯誤,并將其打印出來

    let err = new TypeError('arr.push is not a function')
    console.error(err);

控制臺也會輸出相應的錯誤

Javascript程序異常處理,前端,javascript,javascript,開發(fā)語言

?2.異常的執(zhí)行流程

當代碼在執(zhí)行過程中遇到了錯誤,會發(fā)生什么事情?

1.自動創(chuàng)建對應的異常對象,拋出錯誤

2.程序終止運行,我們知道js代碼是從上到下依次運行的,如果前面出現(xiàn)錯誤,后面的代碼也就不會執(zhí)行了

3.控制臺會顯示異常對象,異常對象中包含了二個信息:程序異常的類型和原因,以及會描述出程序異常出現(xiàn)的位置

看下面這個例子

   function A() {
      console.log('start A');
      B()
      console.log('end A');
    }
    function B() {
      console.log('start B');
      C()
      console.log('end B');
    }
    function C() {
      console.log('start C');
      let a;
      console.log(a.name); //這里會出現(xiàn)錯誤
    }
    A()
    console.log('程序執(zhí)行完畢');

初步分析我們可以知道 a.name這是一個典型的類型錯誤,a并不像一個對象

控制臺信息:

Javascript程序異常處理,前端,javascript,javascript,開發(fā)語言

?可以很清楚的看到代碼并沒有執(zhí)行完就終止了,因為中途遇到了錯誤導致的

報錯信息也很詳細的告訴了我們程序出錯的原因,以及它出現(xiàn)的位置,并且這個報錯信息會將有關的成員全部牽扯進來,最終的錯誤原因是因為在C()函數(shù)中的第52行,間接原因是B()中調用了C(),A()中調用了B(),總路線中出現(xiàn)的錯誤在54行,很清楚的描述了錯誤信息。

?3.捕獲異常

捕獲異常說白了就是去捕獲在代碼運行時可能會發(fā)生錯誤的代碼,然后對其做出一些處理,讓我們的代碼能夠完全執(zhí)行完,不至于報錯后就停止運行了。

利用try catch捕獲異常?

看下面的代碼

try {
      console.log("try 開始");
      console.log(a.name); //這里會出現(xiàn)錯誤,進行捕獲
      console.log("try 結束");
    } catch (err) {
      console.log("catch 開始");
      console.log(err.message); //錯誤提示
      console.log("catch 結束");
    } finally { //無論是否發(fā)生錯誤都會執(zhí)行
      console.log("整個程序結束");
    }

這是運行結果

Javascript程序異常處理,前端,javascript,javascript,開發(fā)語言

?從結果我們就能看出來try catch的執(zhí)行流程了,首先運行try中的代碼,只要發(fā)生了錯誤就是捕獲錯誤,運行catch中的代碼,并能從err.message中捕獲到錯誤信息,并且整個代碼都可以執(zhí)行完畢,并不是出現(xiàn)停止運行的情況。

?其實在絕大多數(shù)情況下我們是不需要捕獲異常的,畢竟寫好的代碼怎么可能無緣無故報錯呢,一般都是跟一些業(yè)務場景結合才會使用捕獲異常

首先是我們提前就能預知某段代碼會出現(xiàn)異常,比如網(wǎng)絡請求,出現(xiàn)錯誤的情況,用戶在斷網(wǎng)的情況下

然后就是我們必須要確定出現(xiàn)異常后該做些什么事情,就比如用戶斷網(wǎng)了,我們捕獲錯誤后應該提醒用戶

?4.手動拋出異常

它的語法是這樣的,錯誤的類型我們可以隨便定義

    throw new TypeError('這是一個類型錯誤')

這是控制臺的報錯

Javascript程序異常處理,前端,javascript,javascript,開發(fā)語言

?什么時候會用到手動拋出錯誤

1.可以預知某段代碼可能會發(fā)生錯誤

2.瀏覽器不會自動拋出該錯誤

3.該函數(shù)無法處理這個錯誤

下面是一個例子:

 //這是一個求和的函數(shù)
    function sum(a, b) {
      if (typeof a !== 'number' || typeof b !== 'number') {
        throw new TypeError('傳入的參數(shù)必須是數(shù)字')
      }
      return a + b
    }
    let s = sum(1, '2')

這是一個求和的函數(shù),并且我們規(guī)定傳入的參數(shù)必須是整數(shù),但是執(zhí)行此函數(shù)瀏覽器并不會報錯,這時候我們就可以手動的拋出這個錯誤來提醒開發(fā)者

Javascript程序異常處理,前端,javascript,javascript,開發(fā)語言

?5.總結

1.對于異常的知識,大概要知道基本的錯誤類型有哪些,這樣在寫代碼,調試代碼時能更快的找出程序的錯誤

2.要能夠根據(jù)錯誤信息迅速的反應過來是什么錯誤,并能找到錯誤的代碼行

3.要知道捕獲異常的語法以及捕獲異常的時機

4.會在適當?shù)臅r機手動拋出錯誤

希望此文對你了解異常的知識能有所幫助文章來源地址http://www.zghlxwxcb.cn/news/detail-606504.html

到了這里,關于Javascript程序異常處理的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 加油優(yōu)惠價格計算-課后程序(JavaScript前端開發(fā)案例教程-黑馬程序員編著-第2章-課后作業(yè))

    加油優(yōu)惠價格計算-課后程序(JavaScript前端開發(fā)案例教程-黑馬程序員編著-第2章-課后作業(yè))

    一、案例描述 考核知識點 if 、 if…else 、if…else if…else 練習目標 掌握if單分支語句。 掌握if…else雙分支語句 掌握if…else if…else多分支語句 需求分析 加油站,為了鼓勵車主多加油,實行多加多優(yōu)惠政策,具體優(yōu)惠如下: 已知92號汽油,每升6元;如果大于等于20升,那么每

    2024年02月07日
    瀏覽(108)
  • 5 種JavaScript 中的高級異常處理方法

    目錄 1.自定義異常 2.try-catch-finally 3.Promises? 4.Async/await? 5.window.onerror? 結論 ????????異常處理是任何編程語言的重要組成部分,JavaScript 也不例外。在本文中,我們將討論在 JavaScript 中處理異常的5種高級技術。 ????????JavaScript 允許開發(fā)人員通過從內置錯誤對象創(chuàng)建新

    2024年02月07日
    瀏覽(23)
  • 大型醫(yī)院云HIS系統(tǒng):采用前后端分離架構,前端由Angular語言、JavaScript開發(fā);后端使用Java語言開發(fā) 融合B/S版電子病歷系統(tǒng)

    大型醫(yī)院云HIS系統(tǒng):采用前后端分離架構,前端由Angular語言、JavaScript開發(fā);后端使用Java語言開發(fā) 融合B/S版電子病歷系統(tǒng)

    一套醫(yī)院云his系統(tǒng)源碼 采用前后端分離架構,前端由Angular語言、JavaScript開發(fā);后端使用Java語言開發(fā)。融合B/S版電子病歷系統(tǒng),支持電子病歷四級,HIS與電子病歷系統(tǒng)均擁有自主知識產(chǎn)權。 文末卡片獲取聯(lián)系! 基于云計算技術的B/S架構的醫(yī)院管理系統(tǒng)(簡稱云HIS),采用前后

    2024年02月03日
    瀏覽(31)
  • JavaScript的try-catch-finally異常處理機制--詳解

    JavaScript 提供了異常處理機制,通過 try-catch-finally 語句塊來捕獲和處理異常。以下是對該機制的詳細解釋和示例: 1. try 塊: try 塊用于包裹可能會產(chǎn)生異常的代碼塊。在 try 塊內,您可以放置任何可能引發(fā)異常的代碼。 2. catch 塊: catch 塊用于捕獲和處理 try 塊中拋出的異常。

    2024年02月11日
    瀏覽(41)
  • 優(yōu)雅而高效的JavaScript——try...catch語句(js異常處理)

    優(yōu)雅而高效的JavaScript——try...catch語句(js異常處理)

    ??博主:小貓娃來啦 ??文章核心: 優(yōu)雅而高效的JavaScript——try…catch語句 異常處理軟件開發(fā)中扮演著至關重要的角色。無論是前端還是后端開發(fā),JavaScript作為一種常用的編程語言,異常處理對于保證程序的健壯性和可靠性至關重要。下面將詳細闡述異常處理的重要性,并

    2024年02月04日
    瀏覽(20)
  • 【JavaScript】3.4 JavaScript在現(xiàn)代前端開發(fā)中的應用

    【JavaScript】3.4 JavaScript在現(xiàn)代前端開發(fā)中的應用

    JavaScript 是現(xiàn)代前端開發(fā)的核心。無論是交互效果,還是復雜的前端應用,JavaScript 都發(fā)揮著關鍵作用。在本章節(jié)中,我們將探討 JavaScript 在現(xiàn)代前端開發(fā)中的應用,包括如何使用 JavaScript 來處理用戶交互、動態(tài)內容、前端路由、API 請求等。 JavaScript 是處理用戶交互的主要工

    2024年02月04日
    瀏覽(26)
  • 前端開發(fā)——Javascript知識(介紹)

    目錄 有關JavaScript的知識? JavaScript的優(yōu)點? ?JavaScript的領域 JavaScript的組成 JavaScript的特點 第一個JavaScript程序 在 HTML 文檔中嵌入 JavaScript 代碼 在腳本文件中編寫 JavaScript 代碼 JavaScript內容? Html內容? JavaScript 代碼執(zhí)行順序 JavaScript中的幾個重要概念 標識符 保留字 區(qū)分

    2024年02月01日
    瀏覽(25)
  • 前端開發(fā)——JavaScript的條件語句

    ? 世界不僅有黑,又或者白 世界而是一道精致的灰 ?——Lungcen ? ? 目錄 條件判斷語句 if 語句 if else 語句 if else if else 語句 ?switch語句 break case 子句 default語句 while循環(huán)語句 do while循環(huán)語句 for循環(huán)語句 for 循環(huán)中的三個表達式 for 循環(huán)嵌套 for 循環(huán)變體——for in for 循環(huán)

    2023年04月21日
    瀏覽(24)
  • 快速認識,前端必學編程語言:JavaScript

    快速認識,前端必學編程語言:JavaScript

    JavaScript是構建Web應用必學的一門編程語言,也是最受開發(fā)者歡迎的熱門語言之一。所以,如果您還不知道JavaScript的用處、特點的話,趕緊補充一下這塊基礎知識。 JavaScript 是一種高級、單線程、垃圾收集、解釋或即時編譯、基于原型、多范式、動態(tài)語言,具有非阻塞事件循

    2024年02月05日
    瀏覽(26)
  • 【前端靈魂腳本語言JavaScript⑤】——JS中數(shù)組的使用

    【前端靈魂腳本語言JavaScript⑤】——JS中數(shù)組的使用

    ?? 作者: 阿偉 ?? 個人主頁: Flyme awei ?? 希望大家多多支持??一起進步呀! ?? 文章對你有幫助??關注?點贊??收藏?? 第一種: var 數(shù)組名 = new Array(); 創(chuàng)建一個空數(shù)組 第二種: var arr2 = new Array(10); 創(chuàng)建一個定長為10的數(shù)組 第三種 var arr3 = new Array(a,b,c); 創(chuàng)建時直接指定元素值

    2023年04月08日
    瀏覽(111)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包