javascript编程异常处理实例小结

本文实例总结了javascript编程异常处理的方法。分享给大家供大家参考,具体如下:

前言:在前一篇《asp.net开发中常见公共捕获异常方式总结》,我们整理总结了asp.net服务端的异常处理。这一篇接着前文,简单总结并讨论一下javascript在客户端的异常处理。这样asp.net的服务端和客户端异常处理我们就都有了初步的认识。

1、烦人的脚本错误

楼猪经常装13,但是普遍都没有深度。偶然艰难地看懂了一段英文,终于可以深沉地再装一回:

When browsing Web pages on the internet, we all have seen a JavaScript alert box telling us there is a runtime error and asking "Do you wish to debug?". Error message like this may be useful for developers but not for users. When users see errors, they often leave the Web page.

上面这段话,哼哼,看不懂了吧?nc楼猪优雅且粗暴地理解一下就是,打开一个网页,我们都不时碰到过网页弹出脚步错误并询问“是否要调试?”这种sb问题。烦不烦啊,正常用户经常都会习惯性选择右上红叉,但是这种提示信息可能对开发人员就tmd很有用。由此可见,我kao,开发人员不正常?!看来楼猪理解有误。其实您不难看出,原文要告诉我们的最终意图应该是,网页里出现脚本错误很要命,用户体验不好,白白“吓跑”一批潜在用户。

2、如何处理脚本错误

在js中,我们通常也是通过try...catch 来捕获并处理异常。

try
{
 //Run some code here
}
catch(e)
{
 //Handle errors here
}

在实际代码中,我们可能会这么写:

function test(){
var txt="";
try{
  alert(aaa);//aaa是未声明的变量
}
catch(e){
  txt="There was an error on this page.\n\n";
  txt+="Error message: " + e.message + "\n\n";
  txt+="Error description: " + e.description + "\n\n";
  txt+="Error name: " + e.name + "\n\n";
  //alert(txt);//正式平台上可能需要注释掉该行
  }
}

还有一种比较通用的做法就是,给window对象的onerror事件注册通用处理方法,并将下面的代码置于页面的<head></head>节内:

window.onerror=function(){
  return true;
}

上面这种方式的好处是页面里写一次,就不会弹出恼人的脚本错误,有点全局处理的意思。对于开发人员,这种写法可能会隐藏潜在的脚本错误而不被发现,所以测试的时候需要注释掉上面的函数。

3、javascript里的Error

(1)、Error对象的常用属性

在我们捕获异常的时候,通常都会在catch处抛出一个Error对象的实例e,e的几个常用属性如下:

属性                             说明
description                      异常的描述信息
message                          异常的描述信息
name                             异常类型
number                           独有的异常代号

在实际开发中,通常都会提示给开发人员message和name信息,以便有针对性地处理异常。

(2)、Error对象的类型

通过(1)中的name属性我们可以查看到异常类型。在js中,有如下几种常见异常类型:

TypeError      : 当遇到一个意外的类型时引发,比如未声明的变量等;
SyntaxError    : 在解析js代码时其中的语法错误引发,比如服务端注册脚步,少一个括号或引号等;
ReferenceError : 使用一个无效的引用时引发该异常;
EvalError      : 在错误的调用eval函数时引发;
RangeError     : 在一个数字型变量的值超出了其范围时引发;
URIError       :  错误地使用encodeURI()或decodeURI()函数时引发。

在实际的开发中,针对不同类型的异常作出不同的异常处理,有利于我们有效地发现问题和提高用户体验。

希望本文所述对大家JavaScript程序设计有所帮助。

(0)

相关推荐

  • javascript中 try catch用法

    先看个实例 <input id='b1' type='button' value='按钮'/> <script> window.onload=function(){ var oBtn=document.getElementById("b1"); function mto(){ alert("123"); }; try //非IE { oBtn.attachEvent("onclick",mto,false); } catc

  • 理解javascript中try...catch...finally

    本文为大家分析了javascript中try...catch...finally的使用方法,分享给大家供大家参考,具体内容如下 稍微复杂一点点,就要用到判断语句,if else进行条件判断,话说if条件else否则,这样的判断对于写程序代码的码侬已经是非常熟悉不过了. 如果你觉得这个也很简单,可能会用到混合if else条件判断语句加上try catch 来处理语句,虽然用try catch能处理任何的对象,通过throw扔一条有错误的语句,接着catch抛出该对象或者该对象的错误,今天我们只说

  • JS异常处理try..catch语句的作用和实例

    首先一个常识就是,在浏览器执行JS脚本过程中,当出现脚本错误,并且你没有手动进行异常捕捉时,他会在浏览器下面出现黄色的叹号,这是正常的,这也不是最重要的,最重要的是,出错行以下的所有JS代码将中停执行,这是我们不希望看到的,所以说,对于自己写的,拿不准的脚本还是加上异常捕捉比较好. 1 清除黄色叹号: 复制代码 代码如下: window.onerror={return true;}  //这只是表面清除了错误,但JS代码将被中停 2 为容易出错的,容易产生兼容问题的代码段加上try..catch

  • javascript中的try catch异常捕获机制用法分析

    本文实例讲述了javascript中的try catch异常捕获机制用法.分享给大家供大家参考,具体如下: 1.跟Java一样,JavaScript也具有try catch块,进行异常捕获的机制. (1)典型的try catch语句 try{ } catch{ } finally{ } 跟java中一样,JS中最为典型的try catch语句也同样分为了三个部分,try用于捕获异常,catch用于处理异常,而finally用于关闭资源等后续操作. 举例: try{ throw "error&qu

  • js异常捕获方法介绍

    复制代码 代码如下: <script type="text/javascript"> try{ ...some code... }catch(e){ ...some code... //处理错误 throw(e.name); //抛出异常 }finally{<BR> // 完成后执行的语句块,非必须<BR>} </script> javascript Error 对象: name: 错误名称number: 错误号description:

  • javascript中异常处理案例(推荐)

    如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script type="text/javascript"> // cache 缓存 // try-catch-finall

  • JavaScript Try...Catch 声明的 使用方法

    try...catch的作用是测试代码中的错误. 实例 try...catch声明  如何编写try...catch声明.  带有确认框的try...catch声明  另一个编写try...catch声明的例子. JavaScript - 捕获错误 当我们在网上冲浪时,总会看到带有runtime错误的Javascript警告框,同时会询问我们"是否进行debug?".像这样的错误信息或许对开发人员有用,对用户则未必.当错误发生时,他们往往会选择离开这个站点. 本节向你讲解如何捕获和处理

  • js中的异常处理try...catch使用介绍

    在JavaScript可以使用try...catch来进行异常处理.例如: 复制代码 代码如下: try { foo.bar();} catch (e) { alert(e.name + ": " + e.message);} 目前我们可能得到的系统异常主要包含以下6种: EvalError: raised when an error occurs executing code in eval() RangeError: raised when a numeric variable o

  • JS使用onerror捕获异常示例

    本文实例讲述了JS使用onerror捕获异常的方法.分享给大家供大家参考,具体如下: 如果需要利用 onerror 事件,就必须创建一个处理错误的函数.你可以把这个函数叫作 onerror 事件处理器 (onerror event handler).这个事件处理器使用三个参数来调用:msg(错误消息).url(发生错误的页面的 url).line(发生错误的代码行). <head> <script type="text/javascript"> onerror=

  • javascript编程异常处理实例小结

    本文实例总结了javascript编程异常处理的方法.分享给大家供大家参考,具体如下: 前言:在前一篇<asp.net开发中常见公共捕获异常方式总结>,我们整理总结了asp.net服务端的异常处理.这一篇接着前文,简单总结并讨论一下javascript在客户端的异常处理.这样asp.net的服务端和客户端异常处理我们就都有了初步的认识. 1.烦人的脚本错误 楼猪经常装13,但是普遍都没有深度.偶然艰难地看懂了一段英文,终于可以深沉地再装一回: When browsing Web pages o

  • JavaScript创建对象方法实例小结

    本文实例讲述了JavaScript创建对象方法.分享给大家供大家参考,具体如下: 最简单的方式就是创建一个Object对象,并为其添加属性和方法. //示例代码 var person=new Object() person.name="yumi" person.age=18 person.job="coder" person.sayName=function(){ alert(this.name) } person.sayName()//输出yumi 这种方式使用同

  • JavaScript文本特效实例小结【3个示例】

    本文实例讲述了JavaScript文本特效.分享给大家供大家参考,具体如下: 1.标题跑马灯 常常能够在一些新闻网站,或者其他地方,看到文字在一个特定的区域内,来回滚动.一旦超出边界就消失了,那么这些效果是如何做到的呢,今天我们就来讲讲. 图示效果: 源代码: <!doctype html> <html> <head> <meta charset="utf-8"> <style> </style> </hea

  • JavaScript编程设计模式之构造器模式实例分析

    本文实例讲述了JavaScript编程设计模式之构造器模式.分享给大家供大家参考,具体如下: 经典的OOP语言中,构造器(也叫构造函数)是一个用于初始化对象的特殊方法.在JS中,因为一切皆对象,对象构造器经常被提起. 对象构造器用于建立制定类型(Class)的对象,可以接受参数用于初始化对象的属性和方法. 对象建立 在JS中,有三个常用的方法用于建立对象: //1, 推荐使用 var newObject = {}; //2, var newObject = Object.create( null

  • JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解

    本文实例讲述了JavaScript编程设计模式之观察者模式.分享给大家供大家参考,具体如下: 简介 简单的解释观察者模式,就是一个对象(subject)维护一个依赖他的对象(observers)列表,当自身状态发生变化时,自动通知所有观察者对象.当某个对象不需要获得通知时,可以从对象列表中删除掉. 从上面的解释中我们可以提炼出三个componet: Subject, ObserverList和Observer,用JS实现很简单: function ObserverList(){ this.obs

  • Javascript简单实现面向对象编程继承实例代码

    本文讲述了Javascript简单实现面向对象编程继承实例代码.分享给大家供大家参考,具体如下: 面向对象的语言必须具备四个基本特征: 1.封装能力(即允许将基本数据类型的变量或函数放到一个类里,形成类的成员或方法) 2.聚合能力(即允许类里面再包含类,这样可以应付足够复杂的设计) 3.支持继承(父类可以派生出子类,子类拥有父母的属性或方法) 4.支持多态(允许同样的方法名,根据方法签名[即函数的参数]不同,有各自独立的处理方法) 这四个基本属性,javascript都可以支持,所以javasc

  • Javascript编程之继承实例汇总

    本文实例讲述了Javascript编程之继承.分享给大家供大家参考,具体如下: 这篇文字是在看完<Javascript 王者归来>后的整理总结,文章详细章节在 第21章 P537 继承一般要实现以下三层含义: 1)子类实例可以共享父类的方法: 2)子类可以覆盖父类的方法或者扩展新的方法: 3)子类和父类都是子类实例的类型. 一.构造继承法 子类中调用父类的构造函数来维护的,该继承法能实现多重继承,但只能继承父类的共有方法,无法继承静态方法,而且不能用instanceof来验证实例. funct

  • JavaScript时间日期操作实例小结【5个示例】

    本文实例讲述了JavaScript时间日期操作.分享给大家供大家参考,具体如下: 本来想在网上找一些js实例来练练手,结果发现一本书<突破JavaScript编程实例五十讲>,看了下内容还不错,就下了下来: 后面又下了该书籍的源码,一看才发现这本书编的日期是2002年的,代码运行之后,有些代码可以运行,有些代码已经失效,原因是其所用的一些语言是已经淘汰的了. 其次就是由于是很早之前写的,那时候可能还没有css,js,html分离的想法,都是杂糅在一起的,看起来很不舒服. 还有就是,代码末尾都是

  • JavaScript常见继承模式实例小结

    本文实例总结了JavaScript常见继承模式.分享给大家供大家参考,具体如下: JavaScript中并没有传统的面向对象语言中的类的概念,但是却实现了特殊的继承机制. (阅读此文您首先需要知道原型的知识) 先来说说第一种继承方式,原型链继承. 一. 原型链继承 所谓原型链继承,就是让父类的一个实例作为子类的原型. 即 : parentInstance = new Parent(); child.prototype = parentInstance; 这样,在创建子类的实例时,子类实例的__p

  • python异常处理try的实例小结

    异常处理 简介 在我们写程序代码的时候,往往会因一个小问题让我们整个程序直接挂掉. 异常处理对我们测试有什么好处,相信做过自动化的同学都知道我们的用例都是一条一条的去执行比如我们程序用例几百条,有一条用例因数据原因导致了程序异常,那么剩下的就会全体停止工作,遇到这样的情况我们应该将这个数据导致的问题抛出来,处理这个异常就可以了. 我们可以使用 tryexcept 的方式来处理异常. 结构 将有可能发生报错的语句放到try:里面,然后使用except来处理异常,每一个try 必须至少有1个exce

随机推荐