java异常语句中catch,finally的执行顺序
2017-01-19 20:13
435 查看
在使用MyEclipse编程时,我发现一个问题:如下代码,当出现异常时,有时候会先执行catch里的语句,而有时候会先执行finally里的语句:
public class Calc {
public int divide(int a, int b) throws Exception {
if (b == 0) {
throw new Exception("出现错误:被除数和除数必须是整数,除数不能为零。");
}
return a / b;
}
}
此例先执行了finally后面语句的内容:
而这一次先执行了catch里面的内容:
后来我把程序拿出来放在CMD命令行中运行,试了很多遍,都是先执行的catch,也就是从上到下顺序执行,不知道是不是MyEclipse的问题。(其他的版本我不清楚,我用的是2014版)
public class Calc {
public int divide(int a, int b) throws Exception {
if (b == 0) {
throw new Exception("出现错误:被除数和除数必须是整数,除数不能为零。");
}
return a / b;
}
}
import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Calc c = new Calc(); System.out.print("请输入被除数:"); int a = sc.nextInt(); System.out.print("请输入除数:"); int b = sc.nextInt(); try { System.out.println(c.divide(a, b)); } catch (Exception e) { System.err.println(e.getMessage()); } finally { System.out.println("感谢使用本程序!"); } } }
此例先执行了finally后面语句的内容:
而这一次先执行了catch里面的内容:
后来我把程序拿出来放在CMD命令行中运行,试了很多遍,都是先执行的catch,也就是从上到下顺序执行,不知道是不是MyEclipse的问题。(其他的版本我不清楚,我用的是2014版)
相关文章推荐
- java中异常处理finally和return语句的执行顺序
- Java异常捕获之try-catch-finally-return的执行顺序
- Java异常机制--try catch finally 执行顺序详解
- Java-try_catch_finally中带有return语句的执行顺序
- java中异常 try,catch,finally在不同情况下的执行顺序
- Java异常处理机制以及try-catch-finally-return执行顺序
- java中异常处理finally和return语句的执行顺序
- java中异常处理finally和return语句的执行顺序
- java 中 try catch finally 语句的执行顺序
- Java异常处理机制以及try-catch-finally-return执行顺序
- java中的异常以及 try catch finally以及finally的执行顺序
- java中try、catch、finally返回语句执行顺序
- Java异常捕获之try-catch-finally-return的执行顺序
- Java异常捕获之try-catch-finally-return的执行顺序.md
- Java异常捕获之try-catch-finally-return的执行顺序-转载
- 【Java异常学习笔记系列】try/catch/finally执行顺序及总结(含return)
- java中异常处理finally和return语句的执行顺序
- java中异常处理finally和return语句的执行顺序
- Java异常处理机制以及try-catch-finally-return执行顺序
- 关于异常处理语句catch和finally的执行先后顺序