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中错误处理的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 错误 - ThrowTry 和 Catch

Java Script学习 3(转)

JavaScript try-catch语句(错误处理)

错误处理

js 捕获异常和抛出异常

JavaScript中错误处理