zoukankan      html  css  js  c++  java
  • 异常的应用finally与总结

     

            一、finally{   },finally块中放入一定要执行的代码,通常用来关闭数据库,关闭链接,节约资源,所以finally中的内容一定要被执行,但是有一张情况不被执行,就是catch(Exception e){System.exit(0);}执行这个语句,系统直接退出了。

            二、对异常的总结;

    1.异常的概念:程序运行有可能出现问题,然后把问题进行对象的封装。

    2.体系:Throwable:异常分为两种:一种是严重的情况,用Error表示,一般不作处理,它的子类都以error作为后缀;另一种是不严重的异常,它用Exception表示,它的子类都以Exception作为后缀,其中有一个比较特殊的子类,就是RuntimelException 运行时异常,抛出此异常,不用在函数体上声明,编译时不做处理;如果声明了,调用者可以处理,也可以不作处理,程序停止运行,需要修改传入的参数;

    3、区别两个关键字的使用:throw和throws:

    throw:是定义在函数体内,用来抛出对象;而throws定义在函数体上,用来抛出异常类名。

    4.异常按照处理过程中分类为两种:

    (1)、编译时异常:抛出异常对象时,要声明抛出异常,如果不声明;编译出错,如果声明了,调用者,就要做出相应的处理;要么抛出,要么try,否则出错;

    (2)、运行时异常:就是编译时不做处理,然后运行时,程序停止运行。RuntimeException,这时就要修改传递进来的参数。

    5、异常处理的几种格式:

     try {       } catch(Exception  e){             }

     try {       } catch(Exception e)finally{            }

     try       }finally{           }

     

    6.异常在子父类中的体现:如果子类重写了父类中的方法,而父类中的方法抛出异常,那么子类要么抛出父类异常,要么抛出子类异常,总之,要让父类异常能够处理。

     

    7.如果父类方法抛出多个异常,那么子类在重写父类中的方法时,只能抛出父类异常的子类。

     

    8,如果父类或者接口中的方法没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常,如果子类中确实出现了异常,那么就必须处理,绝对不能抛出。

    下面通过一个代码来体现一下:


    class ExceptionDemo6
    {
     public static void main(String[] args)
     {
       Circle c=new Circle(-9);
       c.getArea();
      
     }
    }
    //定义一个异常
    class NoValueException extends RuntimeException
    {
      NoValueException(String message)
     {
      super(message);
     }
    }
    //定义一个接口,里面有一个方法,获取面积
    interface Cir
    {
     void getArea();
    }
    //定义一个圆
    class Circle implements Cir
    {
     private double r;
     public static final double PI=3.14;//定义一个全局常量;
        Circle(double r)  throws RuntimeException
     {
      this.r=r;
      if(r<=0) 
       throw new NoValueException("非法值");
     }
     public void getArea()
     {
      System.out.println(r*r*PI);
     }
    }
     

  • 相关阅读:
    数据库权限分配操作
    1130-host ... is not allowed to connect to this MySql server
    ubuntu 14.04安装mysql-python
    Ubuntu中的MySQL修改root密码的多种方法
    ubuntu下安装mysql及卸载mysql方法
    XShell本地上传文件到Ubuntu上及从Ubuntu下载文件到本地
    深度学习-1
    html-新闻滚动条
    Django部署uwsgi 与 nginx配置
    二叉树层次遍历
  • 原文地址:https://www.cnblogs.com/warrior4236/p/6055731.html
Copyright © 2011-2022 走看看