java异常处理总结

来源:互联网 发布:ubuntu root 默认密码 编辑:程序博客网 时间:2024/05/09 12:28

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

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

对问题的划分:两种:一种是严重的问题,一种非严重的问题。

1)对于严重的,Java通过Error类进行描述。对于Error一般不编写针对性的代码对其进行处理。

2)对于非严重的,Java通过Exception类进行描述。对于Exception可以使用针对性的处理方式进行处理。

注意:无论Error或者Exception都具有一些共性内容。比如:不正常情况的内容,引发原因等。

  Throwable:Error,Exception。

2、当在函数内部出现了throw抛出异常对象,1)那么就必须要给对应的处理动作,2)要么在内部trycatch处理,要么在函数上声明让调用者处理。一般情况下,函数内出现异常,函数上需要声明。

如何定义异常信息:

int div(int a ,int b) throws FuShuException

       {    

              if (b<0)

                     thrownew FuShuException();//

              returna/b;

       }

}

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

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

继承Exception原因:异常体系有一个特点,因为异常和异常对象都被抛出。他们都具备可抛性,这个可抛性是Throwable这个体系中特有特点。

只有这个体系中的类和对象才可以被throw和throws操作。

1、Exception中有一个特殊的子类异常RuntimeException(其有很多子类)运行时异常。

1)如果在函数内容抛出异常,函数上可以不用声明,编译一样通过。

2)如果在函数上声明了该异常。调用者可以不用进行处理。编译一

样通过。(ArithmeticException;)

例如:

int div(inta, int b){

if(b<0)

    throw new ArithmeticException(“被除零了”);

teturn  a/b;

}

3、之所以不用在函数声明,是因为不需要烫调用者处理。当该异常发生,希望程序停止,因为在运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修正。

例子:

  Class   person

{

   Publicvoid checkName(String name)

{

    //If(name.equals(“lisi”))//NullPointerException(空指针异常)

If(“lisi”.equals(name))//if(neme!=null&&name.equals(“lisi”)) 这样就不会错

System.out.println(“yes”);

Else

 System.out.println(“no”);

}}

Main(){

  Personp=new person();

p.checkName(null);}

4、自定义异常时:如果该异常的发生,无法再继续进行运算,就让自定义异常继承RuntimeException(非常特殊,会引发程序停止).



1 0
原创粉丝点击