JavaScript FAQ(二十五 完)—— 错误处理

简介: 二十二、错误处理 1、禁止JS错误(Suppress JS Errors)Q:我是否可以禁止JavaScript错误信息?A:可以。要禁止页面上所有的JavaScript错误信息,你要把下面一段代码放在页面的HEAD部分:或者如何你有页面引入的.js文件,可以在其中使用相似代码(不使用SCRIPT标签)。

二十二、错误处理

 

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文比较好,可以直接点击每个主题上的链接,直接查看原文。

目录
相关文章
|
Web App开发 JavaScript 前端开发
|
Web App开发 JavaScript 前端开发
|
Web App开发 JavaScript 前端开发
本人arcgis api for javascript中常见错误总结
1.   2.对象不支持“replace”属性或方法 解决办法:一般在ie中执行js会报这样的错误,基本问题就是你引用了某个对象中不存在的方法,可能是这个方法本来存在而你写错了,或者调用这个方法的时候传入了非法的参数,但这只是粗心造成的,还有就是名字重复的原因,自定义的方法名和原有的重复。
1266 0
|
Web App开发 JavaScript 前端开发
JavaScript FAQ(一)—— 常见问题(一)
        今天在网上看到了一份很不错的JavaScript FAQ,由于担心自己并不能一直把它读完,所以就尝试翻译一些内容,和朋友们一起分享。        FAQ原地址:http://www.
1119 0
|
JavaScript 前端开发 Java
JavaScript FAQ(二)——常见问题(二)
一、常见问题   4. JavaScript的局限性(JavaScript Lminitations) Q:JavaScript程序不能做什么? A:JavaScript代码不能做下列事情: 不能使用用户系统上或者客户端局域网中的打印机或者其他设备。
1100 0
|
JavaScript 前端开发 C++
JavaScript FAQ (三)——常见问题(三)
 一、常见问题   9. JavaScript的注释(Comments in JavaScript) Q:我如何在JavaScript代码中插入注释? A:JavaScript支持三种不同类型的注释: 多行C样式的注释。
1050 0
|
JavaScript 前端开发
JavaScript FAQ(四)——导航功能增强
 二、导航功能增强   1. 下拉菜单中的链接(Links in Select Menu) Q:我如何实现在下拉菜单中链接到不同的页面? A:要创建一个所示的下拉菜单:选择一个页面 JavaScript FAQ Numbers Strings Navigation Colors JavaScripter.net 你可以使用下面的代码: Select a page JavaScript FAQ Numbers Strings Navigation Colors JavaScripter.net 只需要把菜单项及其相应的URL改为你需要就可以了。
1039 0
|
JavaScript 前端开发
JavaScript FAQ(五)——数字
 三、数字   1. 常量(Constants) Q:在编写JavaScript代码时,我可以使用什么类型的数字? A:在JavaScript中,你可以使用下列形式的数字: 常规十进制数字: 5 137 1.3 指数形式的十进制数字: 6.67e-11  -1.127e20 八进制数,例如:  01234  -077  0312 八进制的正数需以0开头,而负数应以-0开头。
926 0
|
JavaScript 前端开发
JavaScript FAQ(六)——字符串
 四、字符串   1. 字符串中的引号(Quotes in String) Q:我如何在字符串中插入引号呢? A:字符串中的引号应该用一个反斜杠(/)引导。如此,JavaScript就会分辨出这些引号是普通字符串还是字符串的分隔符。
1058 0