try...catch 语句是什么?

try...catch 可以测试代码中的错误。try 部分包含需要运行的代码,而 catch 部分包含错误发生时运行的代码。

try...catch语法:

try {
    //在此运行代码
}
catch(err){
    //在此处理错误
}

运行流程:
try{...}包含块中的代码有错误,则运行catch(err){...}内的代码,
否则不运行catch(err){...}内的代码。

  try...catch案例

var array = null;
try {
  document.write(array[0]);
} catch(err) {
  document.writeln("Error name: " + err.name + "");
  document.writeln("Error message: " + err.message);
}

  

try...catch...finally 语句

提供了一种方法来处理可能发生在给定代码块中的某些或全部错误,同时仍保持代码的运行。如果发生了程序员没有处理的错误,JS只给用户提供它的普通错误信息,就好象没有错误处理一样。

finally :无论结果如何,都会执行这里面的语句

try...catch...finally 语法:

try  {
   tryStatements
}
catch(exception){
   catchStatements
}
finally  {
   finallyStatements
}

参数
   tryStatement
   必选项。可能发生错误的语句。
   exception
   必选项。任何变量名。exception    的初始化值是扔出的错误的值。
   catchStatement
   可选项。处理在相关联的    tryStatement    中发生的错误的语句。
   finallyStatements
   可选项。在所有其他过程发生之后无条件执行的语句

  

try...catch...finally 案例
var array = null;
try {
  document.write(array[0]);
} catch(err) {
  document.writeln("Error name: " + err.name + "");
  document.writeln("Error message: " + err.message);
}
finally{
  alert("object is null");
}

程序执行过程
1. array[0]的时候由于没有创建array数组,array是个空对象,程序中调用array[0]就会产生object is null的异常
2. catch(err)语句捕获到这个异常通过err.name打印了错误类型,err.message打印了错误的详细信息.
3. finally类似于java的finally,无论有无异常都会执行.

  

12-25 20:59
查看更多