欢迎来到天天文库
浏览记录
ID:38265519
大小:33.16 KB
页数:5页
时间:2019-06-07
《try、catch和finally》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1、将预见可能引发异常的代码包含在try语句块中。2、如果发生了异常,则转入catch的执行。catch有几种写法:catch这将捕获任何发生的异常。catch(Exceptione)这将捕获任何发生的异常。另外,还提供e参数,你可以在处理异常时使用e参数来获得有关异常的信息。catch(Exception的派生类e)这将捕获派生类定义的异常,例如,我想捕获一个无效操作的异常,可以如下写:catch(InvalidOperationExceptione){....}这样,如果try语句块中抛出的异常是InvalidOperati
2、onException,将转入该处执行,其他异常不处理。catch可以有多个,也可以没有,每个catch可以处理一个特定的异常。.net按照你catch的顺序查找异常处理块,如果找到,则进行处理,如果找不到,则向上一层次抛出。如果没有上一层次,则向用户抛出,此时,如果你在调试,程序将中断运行,如果是部署的程序,将会中止。如果没有catch块,异常总是向上层(如果有)抛出,或者中断程序运行。3、finallyfinally可以没有,也可以只有一个。无论有没有发生异常,它总会在这个异常处理结构的最后运行。即使你在try块内用retu
3、rn返回了,在返回前,finally总是要执行,这以便让你有机会能够在异常处理最后做一些清理工作。如关闭数据库连接等等。注意:如果没有catch语句块,那么finally块就是必须的。如果你不希望在这里处理异常,而当异常发生时提交到上层处理,但在这个地方无论发生异常,都要必须要执行一些操作,就可以使用tryfinally.1.抛出E1.抛出Exception,没有finally,当catch遇上return 1 2public static boolean catchTest() { 3 try { 4
4、 int i = 10 / 0; // 抛出 Exception,后续处理被拒绝 5 System.out.println("i vaule is : " + i); 6 return true; // Exception 已经抛出,没有获得被执行的机会 7 } catch (Exception e) { 8 System.out.println(" -- Exception --"); 9 return c
5、atchMethod(); // Exception 抛出,获得了调用方法并返回方法值的机会10 }11 }12后台输出结果:12 -- Exception --3call catchMethod and return --->> false42.抛出Exception,当catch体里有return,finally体的代码块将在catch执行return之前被执行 1 2public static boolean catchFinallyTest1() { 3 try { 4
6、 int i = 10 / 0; // 抛出 Exception,后续处理被拒绝 5 System.out.println("i vaule is : " + i); 6 return true; // Exception 已经抛出,没有获得被执行的机会 7 } catch (Exception e) { 8 System.out.println(" -- Exception --"); 9 return ca
7、tchMethod(); // Exception 抛出,获得了调用方法的机会,但方法值在 finally 执行完后才返回10 }finally{11 finallyMethod(); // Exception 抛出,finally代码块将在 catch 执行 return 之前被执行12 }13 }14后台输出结果:12 -- Exception --3call catchMethod and return --->> 4call finallyMethod an
8、d do something --->> false53.不抛Exception,当finally代码块里面遇上return,finally执行完后将结束整个方法 1 2public static boolean catchFinallyTest2() {
此文档下载收益归作者所有