`

try/catch/finally

 
阅读更多
try
catch
finally

1、将预见可能引发异常的代码包含在try语句块中
2、如果发生了异常,则转入执行catch语句块中的代码。catch有三种写法:
        a) catch
            这将捕获任何发生的异常
        b) catch(Exception e)
            这将捕获任何发生的异常,并提供e参数,可以在处理异常时使用e参数获得异常信息
        c) catch(Exception的派生类 e)
            这将捕获派生类的异常,例如,我想捕获一个无效操作异常,可以如下写:
            catch(InvalidOperationException e) {
                ....
            }
        这样,如果try语句块中抛出的异常是InvalidOperationException,将转入该处执行,其他异常不处理。

        catch可以有多个,也可以没有,每个catch可以处理一个特定的异常。.net按照你catch的顺序查找异常处理块,如果找到,则进行处理,如果找不到,则向上一层次抛出。如果没有上一层次,则向用户抛出,此时,如果你在调试,程序将中断运行,如果是部署的程序,将会中止。    

        如果没有catch块,异常总是向上层(如果有)抛出,或者中断程序运行。
3、
    finally可以没有,也可以只有一个。无论有没有发生异常,它总会在这个异常处理结构的最后运行。即使你在try块内用return返回了,在返回前,finally总是要执行,这以便让你有机会能够在异常处理最后做一些清理工作。如关闭数据库连接等等。
    注意:如果没有catch语句块,那么finally块就是必须的。

    如果你不希望在这里处理异常,而当异常发生时提交到上层处理,但在这个地方无论是否发生异常,都要必须要执行一些操作,就可以使用try finally,
    很典型的应用就是进行数据库操作:
    用下面这个原语来说明:
try
{
    DataConnection.Open();
    DataCommand.ExecuteReader();
    ...
    return;
}
finally
{
    DataConnection.Close();
}

    无论是否抛出异常,也无论从什么地方return返回,finally语句块总是会执行,这样你有机会调用Close来关闭数据库连接(即使未打开或打开失败,关闭操作永远是可以执行的),以便于释放已经产生的连接,释放资源。
    顺便说明,return是可以放在try语句块中的。但不管在什么时机返回,在返回前,finally将会执行。

小结
    try { //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 }
    catch { //除非try里面执行代码发生了异常,否则这里的代码不会执行 }
    finally { //不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally }     
分享到:
评论

相关推荐

    C++异常处理技巧try/catch/throw/finally/exception

    异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制。 本文为你解释怎样处理C++的异常处理。提供了大量的code

    try 与 catch finally关键字

    Java的 try 与 catch finally关键字的使用

    17.javatry…catch…finally语句.zip

    17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句...

    try-catch-finally捕获异常

    try-catch-finally捕获异常try-catch-finally捕获异常

    使用try-catch-finally处理异常

    使用try-catch-finally处理异常

    Java机战游戏

    完成项目所用技术: 1、Swing窗体设计 Frame类的使用 Graphics类的使用 2、面向对象程序设计 使用封装的方式编写类 创建类和对象,使用类...使用try/catch/finally处理异常 使用异常类输出异常信息 开发工具:Eclipse

    try_catch_finally异常处理java

    压缩包里有本人录制的一个小视屏,不会的亲们,可以看下哦~~~ 笨人要期末考了呢,录些小视屏供自己复习所用,也是为了资源共享~O(∩_∩)O~

    java try…catch…finally捕获异常的实例

    java try…catch…finally捕获异常的实例 java try…catch…finally捕获异常的实例

    try~catch~finally中关于return的问题

    在Java的异常机制中,如果finally中含有return语句,则try和catch中的return语句将会被JVM忽视

    try、catch、finally、return 执行顺序.doc

    try、catch、finally、return 执行顺序超详细讲解,包看包会。

    惠普测试基础Java考核答案

    1、说明try/catch/finally语句块的作用? 从try程序块中得到异常,然后再catch块中做处理(一般是抛出,数据回滚,写日志等等),在finally块中的程序是最后执行的(不论是否前面的程序抛出异常)。

    try-catch-finally执行顺序验证

    try-catch-finally执行顺序验证(左边是.java文件,右边是.class文件) 提示: try、catch块内的return操作编译后会变成把return的值保存到变量var的操作。 总结: try、catch块内的return操作编译后会变成把return的值...

    SwiftTryCatch:添加对Swift的try-catch支持

    围绕Objective-C @try / @catch / @finally构建的简单包装器。 ##用法通过Cocoapods安装pod 'SwiftTryCatch'进口如果对Pod使用Frameworks(Podfile中的use_frameworks!标志): import SwiftTryCatch或导入到Obj...

    uipath level 1 lesson 12参考答案.docx

    4. The Finally block of a Try/Catch activity is executed when: 5. What does the Locals panel display when you are working in Debug mode? 6. If you need to know if a UI Element is available on the ...

    pmd eclipse plugin

    检查Java源文件中的潜在问题 主要包括: 空try/catch/finally/switch语句块 未使用的局部变量、参数和private方法 空if/while语句 过于复杂的表达式,如不必要的if语句等 复杂类

    Arguments.html

    JavaScript 中 try/catch/finally的断言的用法,以及代码示例的尝试。 资源中包含了基本的使用方法,以及添加函数断言的内容。

    try-catch-finally.js:一个很小的库,用于在JavaScript中更灵活地捕获错误

    try-catch-finally.js 843字节库,可在JavaScript中更灵活地捕获错误。内容注意事项按名称捕获可能不起作用按类型捕获在跨框架/过程中不起作用错误被消耗测验 安装 浏览器< script src =" try-catch-finally.js ...

    C#异常处理中try和catch语句及finally语句的用法示例

    使用 try/catch 处理异常 try-catch 块的用途是捕捉和处理工作代码所生成的异常。 有些异常可以在 catch 块中处理,解决问题后不会再次引发异常;但更多情况下,您唯一能做的是确保引发适当的异常。 示例 在此示例中...

    异常+异常处理+try-catch-finally+教程

    异常+异常处理+try-catch-finally+教程 - 本资源是一个异常处理的教程,教你如何用Java的try-catch-finally语句处理异常,包括抛出和捕获异常,自定义异常,多个异常,finally块等。

    try-catch-finally的说明和使用

    学习Java异常必要了解try_catch_finally的说明和使用讲解注意事项

Global site tag (gtag.js) - Google Analytics