try catch 异常 代码执行问题

来源:互联网 发布:淘宝流量充值如何退款 编辑:程序博客网 时间:2024/05/21 06:22

1、不处理异常

public static void testExption2(){int a = 8/0;System.out.println("00000000");}
结果:

Exception in thread "main" java.lang.ArithmeticException: / by zero
at com.why.test.TestException.testExption2(TestException.java:30)
at com.why.test.TestException.main(TestException.java:9)

不执行System.out.println("00000000");直接中断。

2、处理异常

try {int a = 8/0;} catch (Exception e) {System.out.println("+++++++++");} finally {try {Thread.currentThread().sleep(2000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("========");}System.out.println("------");}

 结果:

+++++++++
========
------

例子中8/0发生异常,先执行catch代码块,然后执行finally代码块,最后执行try catch外代码。


3、throw 异常

public class TestException {public static void main(String[] args) {// TODO Auto-generated method stubtry {testException();} catch (Exception e) {System.out.println(e.getStackTrace());}}public static void testException() {try {int a = 8/0;} catch (Exception e) {System.out.println("+++++++++");throw e;//System.out.println("----=====");} finally {System.out.println("========");}System.out.println("------");}}
结果:

+++++++++
========
[Ljava.lang.StackTraceElement;@119fdafc

例2中,throw 异常之后程序中断,finally 代码块执行。


从上面3例可看出,不抛出异常代码会顺序执行,抛出异常代码会中断。不管哪种情况finally代码块都执行。








0 0
原创粉丝点击