try-catch-finally 的输出顺序解决办法
try-catch-finally 的输出顺序程序如下:Java codepublic class cat {public static void main(String args
try-catch-finally 的输出顺序 程序如下:
Java codepublic class cat { public static void main(String args[]) { System.out.println("异常处理示例\n"); try { int i=10; i/=0; System.out.println("try.....\n"); }catch(IndexOutOfBoundsException e) { System.out.println(e.getMessage()); } finally { System.out.println("执行finally语句"); } }} 1.为什么try的println 为什么不执行.
2.catch后边的getMessage()为什么输出上在 System.out.println("执行finally语句");之后.
3.我的结果如下:
--------------------Configuration: <Default>--------------------
异常处理示例
执行finally语句
Exception in thread "main" java.lang.ArithmeticException: / by zero
at cat.main(cat.java:8)
Process completed.
[解决办法] i/=0;这句出来异常,跳出了try块,所以 System.out.println("try.....\n");没有执行
2.catch后边的getMessage()为什么输出上在 System.out.println("执行finally语句");之后.
因为这个异常不是IndexOutOfBoundsException异常,catch块没有捕获到,换成java.lang.ArithmeticException
[解决办法] 1. 在执行到i/= 0;语句时就捕获到异常,这时就转向抛出异常语句,因此System.out.println("try.....\n");不会执行
2. getMessage()输出信息在System.out.println("执行finally语句");之前执行.
Eclipse下执行结果如下:
Java code异常处理示例Exception in thread "main" java.lang.ArithmeticException: / by zero at test.Cat.main(Cat.java:8)执行finally语句[解决办法] 代码有误,你写的这个根本抛不出IndexOutOfBoundsException异常 顺序,try catch finally[解决办法] 因为你catch语句要捕获的不是你现在抛出的异常,所以finally自然先输出了[解决办法] 探讨 i/=0;这句出来异常,跳出了try块,所以 System.out.println("try.....\n");没有执行 2.catch后边的getMessage()为什么输出上在 System.out.println("执行finally语句");之后. 因为这个异常不是IndexOutOfBoundsException异常,catch块没有捕获到,换成java.lang.ArithmeticException [解决办法] 探讨 i/=0;这句出来异常,跳出了try块,所以 System.out.println("try.....\n");没有执行 2.catch后边的getMessage()为什么输出上在 System.out.println("执行finally语句");之后. 因为这个异常不是IndexOutOfBoundsException异常,catch块没有捕获到,换成java.lang.ArithmeticException [解决办法] 抛出异常了,try后面的语句就不会再继续执行了啊。[解决办法] 探讨 1. 在执行到i/= 0;语句时就捕获到异常,这时就转向抛出异常语句,因此System.out.println("try.....\n");不会执行 2. getMessage()输出信息在System.out.println("执行finally语句");之前执行. Eclipse下执行结果如下: Java code 异常处理示例 Exception in thread "main" java.lang.ArithmeticException: / by zero at test.Cat.main(Cat.java:8) 执行finally语句 finally为无论抛出异常与否,都会执…[解决办法] 1. 在执行到i/= 0;语句时就捕获到异常,这时就转向抛出异常语句,因此System.out.println("try.....\n");不会执行 2. getMessage()输出信息在System.out.println("执行finally语句");之前执行. Eclipse下执行结果如下: Java code 异常处理示例 Exception in thread "main" java.lang.ArithmeticException: / by zero at test.Cat.main(Cat.java:8) 执行finally语句 finally为无论抛出异常与否,都会执… [解决办法] 1. 在执行到i/= 0;语句时就捕获到异常,这时就转向抛出异常语句,因此System.out.println("try.....\n");不会执行 2. catch语句在finally之前执行,但是你这边捕获的Exception不是程序抛出的Exception,所以你写的getMessage()没执行 真正执行的getMessage()是系统自己的,在最外层捕获的,所以看上去在finally之后[解决办法]
探讨 i/=0;这句出来异常,跳出了try块,所以 System.out.println("try.....\n");没有执行 2.catch后边的getMessage()为什么输出上在 System.out.println("执行finally语句");之后. 因为这个异常不是IndexOutOfBoundsException异常,catch块没有捕获到,换成java.lang.ArithmeticException [解决办法] 探讨 i/=0;这句出来异常,跳出了try块,所以 System.out.println("try.....\n");没有执行 2.catch后边的getMessage()为什么输出上在 System.out.println("执行finally语句");之后. 因为这个异常不是IndexOutOfBoundsException异常,catch块没有捕获到,换成java.lang.ArithmeticException [解决办法] 探讨 i/=0;这句出来异常,跳出了try块,所以 System.out.println("try.....\n");没有执行 2.catch后边的getMessage()为什么输出上在 System.out.println("执行finally语句");之后. 因为这个异常不是IndexOutOfBoundsException异常,catch块没有捕获到,换成java.lang.ArithmeticException [解决办法] 我怀疑 “catch后边的getMessage()为什么输出上在 System.out.println("执行finally语句");之后. ”???能执行到这吗?[解决办法] 首先 i/=0; 这里抛出异常,但是catch快并没有捕捉到这个异常,所以catch块中的不执行 然后执行 finally{}[解决办法] 探讨 首先 i/=0; 这里抛出异常,但是catch快并没有捕捉到这个异常,所以catch块中的不执行 然后执行 finally{}[解决办法] 家一个捕获Exception异常的区域, 执行顺序应该是如下吧. public class cat { public static void main(String args[]) { System.out.println("异常处理示例\n"); try { int i=10; i/=0; System.out.println("try.....\n");//因为"int i=10; i/=0;"出现异常,所以这里不被执行输出. }catch(IndexOutOfBoundsExceptione) { System.out.println(e.getMessage());//抛出的异常类型不符,这里也不会被执行 }catch(Exceptione e1) { System.out.println(e1.getMessage());//这里被执行了 第一个输出 } finally { System.out.println("执行finally语句");//这里被执行了 第二个输出 } } }[解决办法] 2楼已经解决[解决办法] try catch finally 顺序是这样,错了的话,是你的程序问题了。[解决办法] 探讨 i/=0;这句出来异常,跳出了try块,所以 System.out.println("try.....\n");没有执行 2.catch后边的getMessage()为什么输出上在 System.out.println("执行finally语句");之后. 因为这个异常不是IndexOutOfBoundsException异常,catch块没有捕获到,换成java.lang.ArithmeticException[解决办法] 谢谢楼主,学习了