今天檢查網頁的時候因為一段Js報錯 導致下面的js沒有執行(一個js動態添加的彈窗沒有出現)
原因是因為
一個屬性本身是undefined 找不到 無法給他賦值
這里的原因很簡單 也已經修改好了
但是這里我不禁思索 如果能提前避免這樣的錯誤發生而導致不必要的損失豈不美哉?
好了try catch就為我們提供了這種捕捉未來可能發生的錯誤並提示 在你可能預測到此方法會報錯像這樣
try {
yourFn() ;//maybe errored
} catch (e) { console.log(e.name + ": " + e.message); }
otherFn() ;
這里就算是你的yourFnf方法報錯也不會 影響下面代碼的執行 就是這么easy!
下面介紹的是可能遇到的系統異常
- EvalError: raised when an error occurs executing code in eval() 當一個錯誤發生在()執行的代碼
- RangeError: raised when a numeric variable or parameter is outside of its valid range 當一個數值變量或參數超出其有效范圍時引發的
- ReferenceError: raised when de-referencing an invalid reference 無效的飲用
- SyntaxError: raised when a syntax error occurs while parsing code in eval() 當發生語法錯誤在()解析代碼,而
- TypeError: raised when a variable or parameter is not a valid type 當一個變量或參數不是一個有效的類型時引發
- URIError: raised when encodeURI() or decodeURI() are passed invalid parameters 當encodeuri()或decodeuri()傳遞了無效的參數
上面的六種異常對象都繼承自Error對象。他們都支持以下兩種構造方法:
new Error(); new Error("異常信息");
這樣手動拋出異常
try { throw new Error("Whoops!"); } catch (e) { alert(e.name + ": " + e.message); }