//简单用法
try
{
throw new Error(10,"asdasdasd")
}
catch (e)
{
alert(e.message);
alert(e.description)
alert(e.number)
alert(e.name)
throw new Error(10,"asdasdasd")
}
//在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 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("异常信息");
手工抛出异常的方法如下:
try {
throw new Error("Whoops!");
} catch (e) {
alert(e.name + ": " + e.message);
}
如要判断异常信息的类型,可在catch中进行判断:
try {
foo.bar();
} catch (e) {
if (e instanceof EvalError) {
alert(e.name + ":" + e.message);
}
else if (e instanceof RangeError) {
alert(e.name + ": " + e.message);
}
// etc
}
Error具有下面一些主要属性:
description: 错误描述 (仅IE可用).
fileName: 出错的文件名 (仅Mozilla可用).
lineNumber: 出错的行数 (仅Mozilla可用).
message: 错误信息 (在IE下同description)
name: 错误类型.
number: 错误代码 (仅IE可用).
stack: 像Java中的Stack Trace一样的错误堆栈信息 (仅Mozilla可用).
因此为了更好的了解错误信息我们可以将catch部分改为如下形式:
try {
foo.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()); // 使用本地格式显示当前时间
}
分享到:
相关推荐
主要介绍了python异常处理之try finally不报错的原因,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
try块包含有可能抛出异常的代码,而catch块用于捕获特定类型的异常并处理它们。 在 processNumber() 函数中,我们模拟了一些可能抛出异常的情况。如果传入的数字为负数,我们使用 throw 语句抛出一个 std::runtime_...
程序发布后在客户手中出现异常崩溃,但自己测试又不能复现问题,要是能捕获到异常时相关信息就很好定位问题了。 资源中包含Qt mingw编译程序crash信息捕捉和跟踪方法说明,以及测试程序代码。
(3)对抛出的异常使用try-catch进行异常处理。 实践二:使用try-catch-finally进行异常处理 需求说明 (1)对实践1的异常使用try-catch-finally进行异常处理 (2)在finally块输出是否抛出了异常 实现思路及关键...
易语言简单处理TRY异常源码,简单处理TRY异常,try_进入区域,try_退出区域,try_退出区域_完毕,取寄存器EAX
try块中包含可能会产生异常的代码,当try块内的代码发生异常时,程序会立即跳转到与异常类型相匹配的catch块进行处理。 在catch块中,你可以编写适当的处理逻辑来处理特定类型的异常。每个catch块可以捕获不同类型...
异常处理try catch在vc中的用法.zip visual c++ try catch处理异常
java try…catch捕获异常的实例 java try…catch捕获异常的实例
我们需要明白的是异常的发生不是因为我们代码写错了,我们的代码是可以编译的,但是在运行时产生了一个错误,这个错误是一个异常情况,计算机不能处理这个异常情况,就产生了一个异常。 总结一下异常发生:1.不是...
Delphi异常处理try_except语句和try_finally语句用法以及区别.pdf Delphi异常处理try_except语句和try_finally语句用法以及区别.pdf
在try块中放置可能抛出异常的代码,在catch块中处理捕获到的异常,而finally块中的代码总是会被执行,无论是否发生异常。 异常类型: Java中的异常分为已检查异常(checked exception)和未检查异常(unchecked ...
主要介绍了Java中异常处理之try和catch代码块的使用,是Java入门学习中的基础知识,需要的朋友可以参考下
本文以示例形式简述了C++ try块的异常处理与调试技术,有助于读者复习并加深对try块的了解。 一、格式: 抛出异常throw 异常类型例如throw runtime_error(“Data must refer to same ISBN”); try{ program-...
java try…catch嵌套捕获异常的实例 java try…catch嵌套捕获异常的实例
在try块中编写可能会引发异常的代码,在catch块中编写处理异常的代码。例如: try { //可能会抛出异常的代码 } catch (ExceptionType e) { //处理异常的代码 } 其中,ExceptionType表示捕获的异常类型,可以是Java...
该文件介绍了C++ try块和异常处理知识点,来自于C++ primer。
- 当代码执行过程中出现如除数为零的`ArithmeticException`等错误时,Java会立即转至相应的catch块进行异常处理,如输出错误信息并打印堆栈跟踪。 2. **finally块的使用**: - 不论try块中的代码是否抛出异常,...
Delphi异常处理try except语句和try甄选..docx
当程序运行到try语句块中的代码时,如果发生异常,程序将跳转到相应的catch语句块进行处理。如果没有找到匹配的catch语句块,程序将终止。 一个完整的try-catch语句块包括以下部分: try语句块:包含可能抛出异常...