Tag: catch block

Java中的try-catch块 – catch代码中的执行语句

我有一个关于Java中catch块中语句执行顺序的问题。 当我运行下面的类Test1(见下文)时,我希望首先输出Hi !,然后是e.printStackTrace()的结果; 声明,然后再见! 但是,我从来没有得到这个订单。 请查看下面粘贴的输出。 public class Test1 { public static void calculate() { try { int h = 5/0; } catch (ArithmeticException e) { System.out.println(“Hi!”); e.printStackTrace(); } System.out.println(“Bye!”); } public static void main(String[] args) { calculate(); } } 输出1: 嗨! 再见! java.lang.ArithmeticException:/ by零 在Test1.calculate(Test1.java:6) 在Test1.main(Test1.java:15) 输出2: java.lang.ArithmeticException:/ by零 在Test1.calculate(Test1.java:6) 在Test1.main(Test1.java:15) 嗨! 再见! 我有两个问题: […]

捕获Java中的exception

Java中存在某些预定义的exception,如果抛出这些exception,则会报告发生了严重的事情并且您可以更好地改进代码,而不是在catch块中捕获它们(如果我已正确理解它)。 但是我仍然发现许多程序,其中包含以下内容: } catch (IOException e) { … } catch (FileNotFoundException e) { …. } 我认为IOException和FileNotFoundException正是这种exception,我们不应该在catch块中捕获它们。 为什么人们这样做? 这样抓住他们会更好吗? 无论如何,Java编译器都会警告这种问题。 谢谢。