zoukankan      html  css  js  c++  java
  • 动手动脑11.12

    .动手动脑:请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识

    import javax.swing.*;

    class AboutException {  

      public static void main(String[] a)  

      {    

       int i=1, j=0, k;      

       k=i/j;

      try

     {   

      k = i/j;    // Causes division-by-zero exception  

     //throw new Exception("Hello.Exception!");  }    

    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");
         }
      
      }
    }

    catch语句块中的代码用于处理错误。当异常发生时,程序控制流程由try语句块跳转到catch语句块。不管是否有异常发生,finally语句块中的语句始终保证被执行。

    可以有多个catch语句块,每个代码块捕获一种异常。在某个try块后有两个不同的catch 块捕获两个相同类型的异常是语法错误。

    使用catch语句,只能捕获Exception类及其子类的对象。因此,一个捕获Exception对象的catch语句块可以捕获所有“可捕获”的异常。

    将catch(Exception e)放在别的catch块前面会使这些catch块都不执行,因此Java不会编译这个程序。

    动手动脑:多层的异常捕获-1,阅读以下代码(CatchWho.java),写出程序运行结果:

    运行结果:

    ArrayIndexOutOfBoundsException/内层try-catch

    发生ArithmeticException

    动手动脑:多层的异常捕获-2,写出CatchWho2.java程序运行的结果

    ArrayIndexOutOfBoundsException/外层try-catch

    请先阅读 EmbedFinally.java示例,再运行它,观察其输出并进行总结。

    运行结果如下

    当有多层嵌套的finally时,异常在不同的层次抛出 ,在不同的位置抛出,可能会导致不同的finally语句块执行顺序。

    五‘

    .辨析:finally语句块一定会执行吗?

    请通过 SystemExitAndFinally.java示例程序回答上述问题

    public class SystemExitAndFinally {

        public static void main(String[] args)  {

     try{

                 System.out.println("in main");           

               throw new Exception("Exception is thrown in main");                    //System.exit(0);

               }       

    catch(Exception e)        

    {                   

    System.out.println(e.getMessage());                

        System.exit(0);       

      }     

      finally       

        {         

        System.out.println("in finally");     

         }   

     }

    }

    finally语句块一定会执行

  • 相关阅读:
    将json的时间格式转换成正常的时间格式
    Log4Net
    “我记录”开发框架
    面诊治病图文百科1000问
    手脚治病养生图文百科1000问
    生活真需要:1288个实用偏方
    很老很老的老偏方——对症自疗奇效方全集
    边上班边养生(套装共10册)
    五谷杂粮养生一本全
    现代生活知识百科(全4册)
  • 原文地址:https://www.cnblogs.com/quyangzhangsiyuan/p/9945786.html
Copyright © 2011-2022 走看看