JAVA笔记(十)-----异常

异常:就是程序运行时出现的不正常情况

 

异常的体系

   Throwable

      |--Error

      |--Exception

 

      1.Error

        ①通常出现重大问题如运行的类不存在或者内存溢出等。

        ②不编写针对性代码对其处理

      2.Exception

        ①在运行时运行出现的一些情况,可以通过try catch finally进行处理

       Exception和Error都是以父类名作为后缀的

 

异常的由来:问题也是现实生活中的一个具体事物,也可以通过java的类的形式进行描述并封装成对象。其实就是Java对不正常情况进行描述后的对象体现。

 

对于问题的划分:

      两种:一种是严重问题,一种是非严重问题。

         对于严重的,Java通过Error类描述

         对于非严重的,Java通过Exception类进行描述

         对于Error 一般不编写针对性代码对其处理

         对于Exception可以使用针对性处理方式进行处理

      无论Error或者Exception都具有一些共性内容

      比如:不正常情况的信息,引发原因等。

 

异常的处理:Java提供了特有的语句进行处理

  格式

     try

      {

        需要被处理的代码;

      }

      catch(异常类 变量)

      {

        处理异常的代码;(处理方式)

      }

      finally

      {

        最后一定会执行的语句;

      }

 

对捕获的异常对象进行常见方法操作。

    String getMessage();//获取异常信息

    String toString();//异常名称,异常信息,异常出现位置

    String printStackTrace();//打印异常的堆栈跟踪信息。

其实Jvm默认的异常处理机制就是调用printStackTrace();

 

抛出异常 throws Exception

格式

1 public static int div(int a,int b) throws Exception//通过throws Exception说明该功能可能会出现问题
2 {
3   return a/b;
4 }
 public static void main(Stirng[] args)//throws Exception继续向外抛出,谁调用谁处理
{
  d.div(4,0);
}

对多异常的处理

1.声明异常时,建议声明更为具体的异常,这样可以处理得更具体。

2.对方声明几个异常就对应有几个catch块,如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面(不要定义多余的catch块)

 

建议在进行catch处理时,catch中一定要定义具体处理方式

不要简单定义一句e.printStackTrace(),也不要就简单的书写一条输出语句。(应该保存到运行日志中等等)

 

因项目中会出现未被Java描述的问题,所以可以按Java对问题的思想,对问题进行封装,将特有问题基尼系那个自定义异常封装。

 

当在函数内部出现throw抛出异常对象,那么就必须要给对应的处理动作,要么try catch处理,要么在函数上声明,让调用者处理

 

一般情况,函数内出现了异常,函数上需要声明。

 

自定义异常

  如何自定义异常信息呢?

  因为父类中已经把异常信息的操作完成了,所以子类构造时,将异常信息传递给父类,通过super语句,那么就可以直接通过getMessage方法获取自定义异常

 

自定义异常必须是自定义类继承Exception

 

继承Excepton的原因

异常体系中有一个特点:异常类和对象都被抛出

他们都具备可抛性,这个可抛性是Throwable这个体系中的独有特点。只有这个体系中的类猜可以throws和throw操作。

 

throw和throws的区别

throw用在函数内,throws用在函数上。

throw后面跟的是异常对象,throws跟的是异常类。

 

包(Package)

1.对类文件进行分类管理

2.给类提供多层命名空间

3.写在程序文件的第一行

4.访问类的格式是  包名.类名

5.包也是一种封装形式

总结:包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰,不同包中的子类还可以直接访问父类中被protected权限修饰的成员

包与包之间可以使用的权限只有两种:public protected。

 

    public  protected  default  private

同类中  √    √      √     √

同包中  √    √      √     ×

子类     √    √      ×     ×

不同包  √    ×      ×     ×

 

为了简化类名的书写,使用一个关键字:import

import是导入包中的类

建议不要写通配符*,需要用到包中哪个类,就导入哪个类

建议定义包名不要重复

 

Jar包

  Java的压缩包

    1.方便项目的携带

    2.方便与使用,只要在classpath设置jar路径即可

    3.数据库驱动,SSH框架等都是以jar包体现的。

 

posted @ 2016-03-23 10:01  追风少年阿远  阅读(46)  评论(0)    收藏  举报