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

二十二、错误处理

 

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

时间: 2024-08-02 09:40:14

JavaScript FAQ(二十五 完)—— 错误处理的相关文章

JavaScript FAQ(十五)——鼠标事件(二)

 十二.鼠标事件   2. 左键 vs.右键(Left vs. Right Button) Q:我如何检查用户点击的是右键还是左键? A:click事件只在左键发生,因此onClick事件处理器不用进行左右键测试. 另一方面,mousedown和mouseup事件可能发生在鼠标的任何键上.要确定用户点击的是左键还是右键,可以使用下列事件属性: Netscape Navigator中 event.which Internet Explorer中 event.button 若这些属性的值是1,事件就

Bootstrap &lt;基础二十五&gt;警告(Alerts)

原文:Bootstrap <基础二十五>警告(Alerts) 警告(Alerts)以及 Bootstrap 所提供的用于警告的 class.警告(Alerts)向用户提供了一种定义消息样式的方式.它们为典型的用户操作提供了上下文信息反馈. 您可以为警告框添加一个可选的关闭按钮.为了创建一个内联的可取消的警告框,请使用 警告(Alerts) jQuery 插件. 您可以通过创建一个 <div>,并向其添加一个 .alert class 和四个上下文 class(即 .alert-su

(保存)C#基础概念二十五问

C#基础概念二十五问 注:本文部份资料来自网络,如有侵权,请与我联系,我会在第一时间声明引用或将其删除!     当初学 C# 时是找个人大概问了一下数据类型和分支语句就开始做项目了.这两天又全面的看了一下相关的基础知识(学而时习之嘛),总结了25个问题: 1.静态变量和非静态变量的区别?2.const 和 static readonly 区别?3.extern 是什么意思?4.abstract 是什么意思?5.internal 修饰符起什么作用?6.sealed 修饰符是干什么的?7.over

WPF and Silverlight学习笔记(二十五)

WPF and Silverlight学习笔记(二十五):使用CollectionView实现对绑定数据的排序.筛选.分组 在第二十三节,我们使用CollectionView实现了对于绑定数据的导航,除导 航功能外,还可以通过CollectionView对数据进行类似于DataView的排序.筛选 等功能. 一.数据的排序: 使用第二十四节的数据源,查询所有 的产品信息: 1: <Window x:Class="WPF_24.CollectionViewSortData" 2:

Windows 8风格应用开发入门 二十五 数据绑定

数据绑定是一种简单方式来显示数据,UI元素与数据对象之间的连接或绑定是允许数据在两者之间 流动的.另外建立了绑定且数据发生变化时,相应的UI元素会自动显示变化. 如何将UI元素与 数据进行绑定 开发入门 二十五 数据绑定-windows开发入门"> 从上面图可以知道,每个绑定必须指定一个源和一个目标. 其中源对象可以是任何CLR对象,包括目标元素自身和其他UI元素.目标可以是 FrameworkElement的任何DependencyProperty(依赖属性). 数据绑定引擎从Bindi

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十五)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十五)完美捕捉精灵之神器 -- HitTest 怪物们都出现了,如何选中自己心仪的怪是主角目前首要做的事. 为了进行鼠标状态区别,我首先对鼠标变化规则进行约束:当鼠标在屏幕上空旷地图区域移动时,鼠标光标形态表现为默认光标 (0号光标图片),当鼠标经过精灵(悬停于其上方)时则变成发光光标(1号光标图片),如果指向的精灵对象为敌对状态时则鼠标光标变为攻击光标(2号光标图片),当使用魔法快捷键时,鼠标光标变成凝法状

赶紧接着上一节:Silverlight+WCF 新手实例 象棋 主界面-实时聊天区(二十五) 这节我们实现上节没实现的纠结的进出房间的消息提示 我们清楚的知道,我们每个区都是一个用户控件,我们的在线用户进出时,得到聊天区域显示信息,这就涉及到用户控件之间的消息传递了。 在线用户区说:反正我是

赶紧接着上一节:Silverlight+WCF 新手实例 象棋 主界面-实时聊天区(二十五)  这节我们实现上节没实现的纠结的进出房间的消息提示 我们清楚的知道,我们每个区都是一个用户控件,我们的在线用户进出时,得到聊天区域显示信息,这就涉及到用户控件之间的消息传递了. 在线用户区说:反正我是没权直接去实时聊天区写东西,没办法,找中介委托设置一下了. 那谁是中介呢?委托谁呢?当然是衣食父母Index.xaml了,是它撑着整个家庭的. 好了,知道中介了,那我就签个委托书了: 回到OnlineUse

Visual Basic 二十五周年,微软是否应该开源?

1991年5月20日,比尔盖茨在Windows World 上发布了Visual Basic.微软官方博客上周庆祝了VB二十五周年.自新CEO上任之后,微软的企业文化被认为发生了很大改变,开始积极拥抱开源.因此在二十五周年之际,粉丝再次在官网呼吁微软开源VB,以前的多次呼吁都遭到了微软的拒绝.但最新的呼吁看起来结局也一样,用户在官网发表的帖子被合并到了旧的帖子. 文章转载自 开源中国社区[http://www.oschina.net]

微信小程序把玩(二十五)loading组件

原文:微信小程序把玩(二十五)loading组件 loading通常使用在请求网络数据时的一种方式,通过hidden属性设置显示与否 主要属性: wxml <!----> <button type="primary" bindtap="listenerButton">显示loading</button> <!--默认隐藏--> <loading hidden="{{hiddenLoading}}&quo