javascript同java一样,都有异常处理机制。在javascript中,也是用try...catch来进行异常处理。例如:
- try {
- fo.bar();
- } catch (e) {
- alert(e.name + ": " + e.message);
- }
- try {
- fo.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 or parameter is outside of its valid range ReferenceError: raised when de-referencing an invalid reference SyntaxError: raised when a syntax error occurs while parsing code in eval() TypeError: raised when a variable or parameter is not a valid type URIError: raised when encodeURI() or decodeURI() are passed invalid parameters 上面的六种异常对象都继承自Error对象。他们都支持以下两种构造方法: new Error(); new Error("异常信息"); 每当产生运行时错误,就产生 Error 对象的一个实例以描述错误。该实例有两个固有属性保存错误的描述(description 属性)和错误号(number 属性)。 Error 对象也可以用如上所示方法显式创建,或用 throw 语句抛掉。在两种情况下,都可以添加选择的任何属性,以拓展 Error 对象的能力。 手工抛出异常的方法如下:
- try {
- throw new Error("Whoops!");
- } catch (e) {
- alert(e.name + ": " + e.message);alert(e.name + ": " + e.description);
- }
如要判断异常信息的类型,可在catch中进行判断:
- try {
- fo.bar();
- } catch (e) {
- if (e instanceof EvalError) {
- alert(e.name + ":" + e.message);
- }
- else if (e instanceof RangeError) {
- alert(e.name + ": " + e.message);
- }
-
- }
- try {
- fo.bar();
- } catch (e) {
- if (e instanceof EvalError) {
- alert(e.name + ":" + e.message);
- }
- else if (e instanceof RangeError) {
- alert(e.name + ": " + e.message);
- }
-
- }
Error具有下面一些主要属性: description: 错误描述 (仅IE可用). fileName: 出错的文件名 (仅Mozilla可用). lineNumber: 出错的行数 (仅Mozilla可用). message: 错误信息 (在IE下同description) name: 错误类型. number: 错误代码 (仅IE可用). stack: 像Java中的Stack Trace一样的错误堆栈信息 (仅Mozilla可用). 因此为了更好的了解错误信息我们可以将catch部分改为如下形式:
- try {
- fo.bar();
- } catch (e) {
- if (browserType != BROWSER_IE) {
- alert("name: " + e.name +
- "message: " + e.message +
- "lineNumber: " + e.lineNumber +
- "fileName: " + e.fileName +
- "stack: " + e.stack);
- }
- else {
- alert("name: " + e.name +
- "errorNumber: " + (e.number & 0xFFFF ) +
- "message: " + e.message");
- }
- }
- try {
- fo.bar();
- } catch (e) {
- if (browserType != BROWSER_IE) {
- alert("name: " + e.name +
- "message: " + e.message +
- "lineNumber: " + e.lineNumber +
- "fileName: " + e.fileName +
- "stack: " + e.stack);
- }
- else {
- alert("name: " + e.name +
- "errorNumber: " + (e.number & 0xFFFF ) +
- "message: " + e.message");
- }
- }
JavaScript中的throw命令事实上可以抛出任何对象,并且我们可以在catch接受到此对象。例如:
-
- try {
- throw new Date();
- } catch (e) {
- alert(e.toLocaleString());
- }
<!--EndFragment-->
分享到:
相关推荐
javaScript异常处理文档,当遇到JavaScript等异常问题时可翻阅本文档寻找答案
JavaScript 异常处理 异常处理概述 在代码的运行过程中,错误是不可避免的,总的来说,错误发生于两种情况:一是程序内部的 逻辑或者语法错误,二是运行环境或者用户输入中不可预知的数据造成的错误。对于前者,就称...
JavaScript中的异常可以用try..catch..finally语句来处理,也可以手动的来抛出异常。 1.使用try..catch..finally语句来处理异常 js代码在执行过程中如果出现异常,会手动创建一个异常类对象,该异常类对象将被提交给...
运行时的错误统称为异常,为了能在错误发生时得到一个处理的机会,JavaScript提供了异常处理语句。包含try-catch、try-catch-finally和throw. try-catch语句 try{ tryStatements } catch(exception){ ...
这篇文章主要介绍了javascript异常处理实现原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一、什么是例外处理 当 JavaScript程序在运行中发生了诸如...
主要介绍了JavaScript 异常处理 详解,需要的朋友可以参考下
本文实例总结了javascript编程异常处理的方法。分享给大家供大家参考,具体如下: 前言:在前一篇《asp.net开发中常见公共捕获异常方式总结》,我们整理总结了asp.net服务端的异常处理。这一篇接着前文,简单总结并...
} 下面是为了获取js异常信息,方便开发者找回问题 1,try…catch… 代码如下:[removed]var txt=””function message(){try { adddlert(“Welcome guest!”) }catch(err) { txt=”本页中存在错误。\n\n” txt+...
react-native模块,让您注册一个全局错误处理程序,可以捕获致命/非致命的未捕获异常
主要介绍了JS异常处理的作用和实例,即try..catch语句,需要的朋友可以参考下
主要介绍了Node.js异常处理中domain模块的使用方法,文中最后提到了内存泄漏的相关问题,值得注意,需要的朋友可以参考下
基于MicroSoftAjax的JS代码之1:异常处理
JavaScript 处理异常的方法
JavaScript中的错误可以分为语法错误和运行错误。语法错误一般简称为错误(Error),而运行错误一般也叫做异常(Exception)。错误和异常同属于错误,但是也有着本质的区别。下面将分别予以介绍,并分析它们之间的异同...
本文主要介绍了SPC控制图判异标准与异常处理方法