try-catch用法和含义

为 JScript 实现错误处理。

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


参数


tryStatements 可选。可能发生错误的语句。
exception 必选。任何变量名称。exception 的初始值是引发的错误的值。
catchStatements 可选。处理在相关联的 tryStatement 中发生的错误的语句。
finallyStatements 可选。在所有其他的错误过程发生之后被无条件执行的语句。


备注


try...catch...finally 语句提供了一种方法,可处理给定代码块中可能会发生的一些或全部错误,同时仍保持代码的运行。如果发生了程序员没有处理的错误,JScript 只给用户提供它的一般错误信息,就好象没有错误处理一样。

tryStatements 参数包含可能发生错误的代码,而 catchStatement 则包含了可处理任何发生的错误的代码。如果在 tryStatements 中发生了一个错误,则将把程序控制传递给 catchStatements 来处理该错误。exception 的初始值是发生在 tryStatements 中发生的错误的值。如果不发生错误,则不执行 catchStatements。

如果在与发生错误的 tryStatements 相关联的 catchStatements 中不能处理该错误,则使用 throw 语句将这个错误传播或重新引发给更高级的错误处理程序。

在执行完 tryStatements 中的语句,并在 catchStatements 的所有错误处理发生之后,可无条件执行 finallyStatements 中的语句。

请注意,即使 try 或 catch 块中出现返回语句,或 catch 块中引发错误,都会执行 finallyStatements 中的代码。finallyStatments 一定会始终运行。

示例


下面的示例阐释了 JScript 异常处理是如何进行的。

try {
    print("Outer try running...");  
    try {
    print("Nested try running...");  
     throw "an error";    } catch(e) {
       print("Nested catch caught " + e);  
     throw e + " re-thrown";    } finally {
       print("Nested finally is running...");    }} catch(e) {
    print("Outer catch caught " + e);} finally {
    print("Outer finally running");}
将生成以下输出:

Outer try running..Nested try running...Nested catch caught an errorNested finally is running...Outer catch caught an error re-thrownOuter finally running

在 catch 块中可以使用 throw 语句再次引发已由 catch 语句捕获的异常。例如:

catch (InvalidCastException e)
{
    throw (e);    // Rethrowing exception e
}
如果要再次引发当前由无参数的 catch 子句处理的异常,则使用不带参数的 throw 语句。例如:
catch{
    throw;}
C# 程序员参考
   try-catch请参见
C# 关键字 | 与 C++ 比较 | 异常处理语句 | throw | try-finally | 引发异常 | C. 语法try-catch 语句由一个 try 块和其后所跟的一个或多个 catch 子句(为不同的异常指定处理程序)构成。此语句会采用下列形式之一:try try-block catch (exception-declaration-1) catch-block-1 catch (exception-declaration-2) catch-block-2 ...try try-block catch catch-block

其中:

try-block 包含应引发异常的代码段。
exception-declaration, exception-declaration-1, exception-declaration-2 异常对象声明。
catch-block, catch-block-1, catch-block-2 包含异常处理程序。

 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值