錯誤處理

錯誤類型
JavaScript 解析或運(yùn)行時景用,一旦發(fā)生錯誤,引擎就會拋出一個錯誤對象

SyntaxError
是解析代碼時發(fā)生的語法錯誤

ReferenceError
ReferenceError對象是引用一個不存在的變量時發(fā)生的錯誤嫩絮。
另一種觸發(fā)場景是丛肢,將一個值分配給無法分配的對象围肥,比如對函數(shù)的運(yùn)行結(jié)果或者this賦值。

RangeError
RangeError對象是一個值超出有效范圍時發(fā)生的錯誤蜂怎。

TypeError對象是變量或參數(shù)不是預(yù)期類型時發(fā)生的錯誤穆刻。

throw語句
throw語句的作用是手動中斷程序執(zhí)行,拋出一個錯誤杠步。
遇見大錯就中斷,不往下執(zhí)行
new Error是一個對象,可以創(chuàng)建規(guī)則.在控制臺顯示

var x=-1
if (x < 0) {
    throw new Error('x 必須為正數(shù)');
}
//uncaught Error : x 必須為正數(shù)
console.log(1)      //遇見拋出的錯誤下面的代碼也不會運(yùn)行
        
// 拋出一個字符串              
throw 'Error氢伟!';
// Uncaught Error!

// 拋出一個數(shù)值
throw 42;
// Uncaught 42
        
// 拋出一個布爾值
throw true;
// Uncaught true
        
// 拋出一個對象
throw {
    toString: function () {
        return 'Error!';
}
};
// Uncaught {toString: ?}

try..catch
一旦發(fā)生錯誤幽歼,程序就中止執(zhí)行了朵锣。
JavaScript 提供了try...catch結(jié)構(gòu),允許對錯誤進(jìn)行處理甸私,選擇是否往下執(zhí)行诚些。
可以用來嘗試自己寫的代碼是否有錯誤 跟if規(guī)矩一樣
try {
//想判斷的代碼
}catch(e){
console.log(e.message);
//如果不出錯就不會執(zhí)行catch,如果出錯就會執(zhí)行catch,把錯誤
//的存儲帶參數(shù)里,message是錯誤的一個屬性,代表著錯誤的信息
}
try代碼塊拋出錯誤,JavaScript 引擎就立即把代碼的執(zhí)行皇型,轉(zhuǎn)到catch代碼
塊诬烹,或者說錯誤被catch代碼塊捕獲了。catch接受一個參數(shù)弃鸦,表示try代碼塊拋出的值绞吁。

inally
try...catch結(jié)構(gòu)允許在最后添加一個finally代碼塊,
表示不管是否出現(xiàn)錯誤唬格,都必需在最后運(yùn)行的語句家破。

function f(){
    try{
        console.log(0)
        throw 'bug'
    }catch(e){
        console.log(1)
        return true
        console.log(2)
    }finally{
        console.log(3)
        return false
        console.log(4)
    }
    console.log(5)
}
f()
console.log(f())                //0,1,3
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市购岗,隨后出現(xiàn)的幾起案子汰聋,更是在濱河造成了極大的恐慌,老刑警劉巖藕畔,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件马僻,死亡現(xiàn)場離奇詭異,居然都是意外死亡注服,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門措近,熙熙樓的掌柜王于貴愁眉苦臉地迎上來溶弟,“玉大人,你說我怎么就攤上這事瞭郑」加” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵屈张,是天一觀的道長擒权。 經(jīng)常有香客問我袱巨,道長,這世上最難降的妖魔是什么碳抄? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任愉老,我火速辦了婚禮,結(jié)果婚禮上剖效,老公的妹妹穿的比我還像新娘嫉入。我一直安慰自己,他們只是感情好璧尸,可當(dāng)我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布咒林。 她就那樣靜靜地躺著,像睡著了一般爷光。 火紅的嫁衣襯著肌膚如雪垫竞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天蛀序,我揣著相機(jī)與錄音欢瞪,去河邊找鬼。 笑死哼拔,一個胖子當(dāng)著我的面吹牛引有,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播倦逐,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼譬正,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了檬姥?” 一聲冷哼從身側(cè)響起曾我,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎健民,沒想到半個月后抒巢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡秉犹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年蛉谜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片崇堵。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡型诚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鸳劳,到底是詐尸還是另有隱情狰贯,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站涵紊,受9級特大地震影響傍妒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜摸柄,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一颤练、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧塘幅,春花似錦昔案、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至匾乓,卻和暖如春捞稿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拼缝。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工娱局, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咧七。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓衰齐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親继阻。 傳聞我的和親對象是個殘疾皇子耻涛,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容