JavaScript中错误处理
Posted 橘猫吃不胖~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript中错误处理相关的知识,希望对你有一定的参考价值。
javascript中错误处理
1 如何进行错误处理
使用try()......catch()
,语法为:
try
// 可能出现错误的代码
catch(e)
// 错误处理代码
catch:用来捕获错误,参数e用来捕获错误对象
错误案例演示:
var o = ;
o.func(); // 这行代码会出错,因为调用了不存在的方法
console.log("test"); // 前面的代码出错时,这行代码不会执行
当我们知道这行代码可能会出现问题时,就可以使用try()......catch()
来进行错误处理,案例如下:
var o = ;
try // 在try中编写可能出现错误的代码
o.func();
console.log("a"); // 如果前面的代码出错,这行代码不会执行
catch (e) // 在catch中捕获错误,e表示错误对象
console.log(e);
console.log('b'); // 如果错误已经被处理,这行代码会执行
2 错误对象的传递
书写错误代码:
function foo1()
foo2(); // 调用foo2函数
console.log("foo1");
function foo2()
var o = ;
o.func(); // 未定义这个函数,发生错误
foo1();
将上面的代码使用try()……catch()
进行错误处理后:
function foo1()
foo2(); // 调用foo2函数
console.log("foo1");
function foo2()
var o = ;
o.func(); // 调用func()函数
try
foo1(); // 调用foo1函数
catch (e)
console.log("test"); // 如果错误输出test
结果是:test
3 抛出错误对象throw
throw
语句用来抛出一个用户自定义的异常。当前函数的执行将被停止(throw之后的语句将不会执行),并且控制将被传递到调用堆栈中的第一个catch块。如果调用者函数中没有catch块,程序将会终止。
try
var e1 = new Error("错误信息:橘猫吃胖了");
throw e1; // 将错误对象e1抛出
catch (error)
console.log(error.message); // 输出错误信息
console.log(error === e1); // 判断错误对象是否等于错误信息
4 错误类型
类型 | 说明 |
---|---|
Error | 表示普通错误,其余6种类型的错误对象都继承自该对象 |
EvalError | 调用eval()函数错误,已经弃用,为了向后兼容,低版本还可以使用 |
RangeError | 数值超出有效范围,如new Array(-1) |
ReferenceError | 引用了一个不存在的变量,如var a = 1; a + b; (变量b未定义) |
SyntaxError | 解析过程语法错误,如 ; 、if() 、var a = new; |
TypeError | 变量或参数不是预期类型,如调用了不存在的函数或方法 |
URIError | 解析URI编码出错,调用encodeURI()、escape()等URI处理函数时出现 |
以上是关于JavaScript中错误处理的主要内容,如果未能解决你的问题,请参考以下文章