JavaScript FAQ(二十五 完)—— 錯誤處理

來源:互聯網
上載者:User

二十二、錯誤處理

 

1、禁止JS錯誤(Suppress JS Errors)

Q:我是否可以禁止JavaScript錯誤資訊?

A:可以。要禁止頁面上所有的JavaScript錯誤資訊,你要把下面一段代碼放在頁面的HEAD部分:

<SCRIPT language="JavaScript"><!--function silentErrorHandler() {return true;}window.onerror=silentErrorHandler;//--></SCRIPT>

或者如何你有頁面引入的.js檔案,可以在其中使用相似代碼(不使用SCRIPT標籤)。關於可啟動並執行代碼執行個體,參考我們的錯誤處理示範程式。

 

2、添加你自己的錯誤處理程式(Adding Your Own Error Handler)

Q:我可以設定自己的錯誤處理程式嗎?

A:當然可以。使用下面的JavaScript代碼定義你自己的錯誤處理程式:

function handlerFunction(description,page,line) { // put error-handling operators here return true}window.onerror=handlerFunction

你的錯誤處理函數可以使用下列選擇性參數:

  • 錯誤的文本描述
  • 錯誤發生的頁面地址
  • 錯誤發生的行號

如果你希望這個錯誤處理函數在完成自訂的錯誤處理後,再呼叫瀏覽器的預設錯誤處理,就必須返回false。如果你不想呼叫瀏覽器的預設錯誤處理機制,函數就必須返回true。程式碼範例參考錯誤處理示範程式。

 

3、錯誤處理示範程式(Error Handling Demo)

Q:我可以動態改變JavaScript的錯誤處理程式嗎?

A:可以。要改變JavaScript錯誤處理程式,只需要設定window.onerror的值為函數的名稱,它就會作為你的新的錯誤處理程式。

這裡是一個示範程式,你可以測試三個不同的錯誤處理程式:

  • 瀏覽器預設的錯誤處理方法
  • 顯示自訂警告資訊框的錯誤處理程式
  • 禁止所有錯誤的資訊的“安靜”錯誤處理程式
  1.  使用選擇框設定或改變錯誤處理程式。
  2. 點擊“Fire an Error”測試活動的錯誤處理程式。

下面是示範程式中的錯誤處理程式的原始碼:

function defaultHandler() {return false}function silentHandler()  {return true}function customHandler(desc,page,line,chr)  { alert(  'JavaScript error occurred! /n' +'The error was handled by ' +'a customized error handler./n' +'/nError description: /t'+desc +'/nPage address:      /t'+page +'/nLine number:       /t'+line ) return true}

寫在最後:

該篇是JavaScript FAQ系列的最後一篇。通過這一系列的翻譯讓我以前很多不明確的問題得到瞭解決,也希望能給看到這一系列翻譯的各位帶來一些收穫。由於這一系列文章的討論大多是基於舊版的瀏覽器,可能有些問題有了新的解決方案,希望大家可以積極討論。

由於本人水平有限,在翻譯中雖然對很多句子斟酌再三,但是難免有不能表達原文之意的地方,希望大家指正。而如果各位E文比較好,可以直接點擊每個主題上的連結,直接查看原文。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.