1. 程式人生 > >錯誤調試

錯誤調試

new listen gif 操作 文件 all mes row 顯示

各個瀏覽器都有打開自己錯誤調試的方法,ie需在工具欄中打開,但沒有控制臺,會彈出彈窗,其它瀏覽器還好,都能顯示控制臺;

try{}catch(error){}finally{}:這個try-catch語句經常用到,將可能發生錯誤的語句塊兒放在try裏,將發生錯誤後執行的代碼放在catch裏,finally語句塊兒 是可選的,如果存在,無論執行try還是catch最後都會執行finally,需要註意的是,當try或catch裏有return時,而finally也存在return,則finally裏的return會覆蓋前面兩個的return。

錯誤類型

Erroe:Error是基本類型,所有報錯類型都繼承該類型

EvalError:eval()函數執行發生錯誤時發生

RangeError:數值超出範圍

ReferenceError:找不到對象

SyntaxError:將錯誤語法的字符串傳入eval()方法時發生

TypeError:執行指定類型的操作時,變量類型不對時拋出

URIError:url解碼編碼錯誤時拋出

throw 可以拋出自定義錯誤信息,在throw後面跟上自定義的錯誤信息即可,無類型規定。

            throw 12345;
            throw "hellow";
            throw true;
            throw {name:"error"};
            throw "aaa未定義";
            throw new Error("錯誤信息");
            throw new SyntaxError("錯誤信息");
            throw new RangeError("錯誤信息");
            throw new EvalError("錯誤信息");
            throw new URIError("錯誤信息");
            throw new ReferenceError("錯誤信息");

利用原型鏈還可以繼承Error來創建自定義錯誤類型。此時需要為新創建的錯誤類型指定name和message屬性。

    function CustomError(message){
            this.name="CustomError";
            this.message=message;
      }
      CustomError.prototype=new Error();
      throw new CustomError("my message");

也可以用onerror事件來代替瀏覽器自身的報錯,不過得阻止瀏覽器的默認報錯:

    window.addEventListener("error",function(message){
            console.log(message);
            return false;//竟然並無卵用,瀏覽器自身還是要報錯;
      },false);
      console.log(aaa);

圖像也支持error事件。只要圖像中url特性中的URL不能返回可以被識別的圖像格式,就會觸發error事件。此時error事件遵循DOM格式,會返回一個以圖像為目標的event對象:

    var image=new Image();
      image.addEventListener("load",function(event){
            console.log("image loaded!");
      },false);
      image.addEventListener("error",function(event){
            console.log("image not loaded!");
      },false);
      image.src="haaa.gif";//指定的文件不存在

錯誤調試