JavaScriptFAQ(二十五完)——錯誤處理

kjmeng發表於2009-09-19

二十二、錯誤處理

 

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的值為函式的名稱,它就會作為你的新的錯誤處理程式。

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

  • 瀏覽器預設的錯誤處理方法
  • 顯示自定義警告資訊框的錯誤處理程式
  • 禁止所有錯誤的資訊的“安靜”錯誤處理程式

Custom Error HandlerSilent Error HandlerDefault Error Handler

  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文比較好,可以直接點選每個主題上的連結,直接檢視原文。


相關文章