Java第六节课总结

动手动脑:

多层的异常捕获-1:
ArrayIndexOutOfBoundsException/内层try-catch
发生ArithmeticException
多层的异常捕获-2:
ArrayIndexOutOfBoundsException/外层try-catch
当有多个嵌套的try…catch…finally时,要特别注意finally的执行时机。
请先阅读 EmbedFinally.java示例,再运行它,观察其输出并进行总结。

##特别注意:
当有多层嵌套的finally时,异常在不同的层次抛出 ,在不同的位置抛出,可能会导致不同的finally语句块执行顺序。
在Java语言的异常处理中,finally块的作用就是为了保证无论出现什么情况,finally块里的代码一定会被执行。由于程序执行return就意味着结束对当前函数的调用并跳出这个函数体,因此任何语句要执行都只能在return前执行(除非碰到exit函数),因此finally块里的代码也是在return之前执行的。此外,如果try-finally或者catch-finally中都有return,那么finally块中的return将会覆盖别处的return语句,最终返回到调用者那里的是finally中return的值。
 
package classJava;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class AboutException {
   public static void main(String[] a)
   {
      int i=100;
      int j;
      int k;
      Scanner scan=new Scanner(System.in);
      j=scan.nextByte();
      k=i/j;
 try
 {  
  k = i/j;   
 }
 
 catch ( ArithmeticException e)
 {
  System.out.println("被0除.  "+ e.getMessage());
 }
 
 catch (Exception e)
 {
  if (e instanceof ArithmeticException)
   System.out.println("被0除");
  else
  { 
   System.out.println(e.getMessage());
   
  }
 }
 
 finally
    {
       JOptionPane.showConfirmDialog(null,"OK");
    }
 System.out.println(k); 
  }
}

猜你喜欢

转载自www.cnblogs.com/vvxvv/p/11783677.html