基本語法
/** * * try { * tryCode -- 嘗試執行的代碼 * } catch(error) { * catchCode -- 捕捉到錯誤的代碼時觸發 * } finally { * finallyCode -- 無論走 try/catch 都要執行這里的代碼 * } * */
簡單案例
try { alert("1"); } catch (error) { alert(error); } finally { alert("Hello, 鄭州"); }
復雜案例
var a = 3; try { if (a < 5) { alert("+++++++"); let a = 10000; // throw 的值會傳遞給 catch throw a; } if (a < 10 && a >= 5) throw "這個數小於10"; if (a < 15 && a >= 10) throw "這個數小於15"; } catch (msg) { alert(msg); }
try catch的缺點
1.try catch耗性能 2.try catch捕獲不到異步錯誤 3.try catch可能會導致報錯點更模糊
報錯順序
a.try里面的代碼報錯的時候,catch里面的代碼才會執行,finally里面的代碼永遠會執行
b.catch和finally里面,正常的代碼會從上到下順序執行
c.如果只是catch里面代碼出錯,則報catch里面的錯誤
d.如果catch和finally都出錯則會報finally里面的錯誤
使用場景:
為容易出錯的,容易產生兼容問題的代碼段加上try..catch。合處理那些我們無法控制的錯誤,如I/O操作,后端java讀取I/O操作比較多比如讀數據庫,所以用try catch比較多。前端可以用在上傳圖片或async await同步調接口。
注意:
try catch語句,作為JavaScript中處理異常的一種標准方式。但是在前端js代碼中很少看到try catch語句,並不是所以代碼都需要加try catch來作得不償失的“保險”。