|
Property:
name: 錯(cuò)誤名
number: 錯(cuò)誤號(hào)
description: 描述
message: 錯(cuò)誤信息,多同description
FF Only 屬性
fileName: 錯(cuò)誤發(fā)生的文件
stack: 錯(cuò)誤發(fā)生時(shí)的調(diào)用堆棧
Constructor:
Error(){
this(0,"")}
Error(description){
this(0,description)}
Error(number,description){
....}
構(gòu)造函數(shù)參數(shù)不帶name,是因?yàn)镋rror對(duì)象的name對(duì)應(yīng)于它的來源:
EvalError: 錯(cuò)誤發(fā)生在eval()中
SyntaxError: 語法錯(cuò)誤,錯(cuò)誤發(fā)生在eval()中,因?yàn)槠渌c(diǎn)發(fā)生SyntaxError會(huì)無法通過解釋器
RangeError: 數(shù)值超出范圍
ReferenceError: 引用不可用
TypeError: 變量類型不是預(yù)期的
URIError: 錯(cuò)誤發(fā)生在encodeURI()或decodeURI()中
拋出Error:
throw new Error(0,"Error Demo");
new Error可省略:
throw("Error Demo");
捕獲Error:
try catch finally語句:
try{
..可能錯(cuò)誤的語句..}
catch(e){
..錯(cuò)誤發(fā)生后的處理..}
finally{
..完成后執(zhí)行的語句塊..}
finally不是必須的
如果嵌套,兩個(gè)catch不要使用同一個(gè)參數(shù)名,以免覆蓋
傳入的參數(shù)是一個(gè)Error對(duì)象,可以從中得到錯(cuò)誤信息
FF支持一個(gè)try多個(gè)catch,因?yàn)镴s為弱類型不推薦使用
window.onerror錯(cuò)誤捕獲:
window.onerror=function(Msg,Url,Num){}
onerror事件會(huì)傳給回調(diào)函數(shù)3個(gè)默認(rèn)參數(shù)
Msg: 錯(cuò)誤信息
Url: 發(fā)生錯(cuò)誤的文件的Url
Num: 錯(cuò)誤發(fā)生位置的行號(hào)
window.onerror還能處理SyntaxError,比try catch更強(qiáng)大。
但是onerror屬于bom,所以各瀏覽器廠家對(duì)其的支持都不同。
如IE發(fā)生error時(shí),正常的代碼會(huì)繼續(xù)執(zhí)行;在FF中,代碼將結(jié)束;Safari只支持Image的onerror事件處理。
Image.onerror
onerror還可以應(yīng)用于其它HTMLElement上,最常見的是<img />元素
<img src="sample.jpg" onerror="Javascript:alert('圖像載入錯(cuò)誤');" />
處理Error:
判斷錯(cuò)誤類型:
catch(e){
if(e.name=="RangeError")
alert("錯(cuò)誤提示");}
或
catch(e){
if(e instanceof TypeError)
alert("錯(cuò)誤提示");}
JavaScript技術(shù):javascript Error 對(duì)象 錯(cuò)誤處理,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。