异常

来源:互联网 发布:蜂窝移动数据用量清零 编辑:程序博客网 时间:2024/05/16 09:07

一:什么是异常?

       异常是在Java中,对问题的描述,将问题进行对象的封装。

二:什么时候使用异常呢?

有可能出现不正常情况的时候使用异常,比如视频中说到的num =a/b;,因为在数学计算当中b不能是0或者负数,所以当b不是正数时就会出现异常。在使用当中比较常见的是RuntimeExceptionIORuntimeException,在实际的使用当中,我比较喜欢使用Exception,因为这个是最大的异常。这几个异常是系统当已有的异常,也可以自定义异常。

自定义异常需要继承Exception,可以使用父类定义好的功能将异常信息传递给父类的构造函数。自定义异常的模本如下

public class MyDemo {     public static void main(String[] args) {              Exce ex =new Exce();//创建一个类对象       try       {           int nt= ex.nul(6,-1);//调用函数           System.out.println(nt);       }       catch(MyException  e )//抓取异常       {           System.out.println(e.getMessage());//打印异常信息       }       finally       {           System.out.println("程序结束");       }    }      }class MyException extends Exception//定义自己的异常{    MyException(String  message)    {       super(message);//将异常信息给父类    }} class Exce{//定义函数,可以抛出异常    public static int nul(int a,int b)throws MyException    {       int num;       if(b>0)//判断输入的数是否为正数,是则计算       {            num =a/b;       }       else //不是则抛出异常信息       {           throw new MyException("出错啦,不能为负数和0");       }             return num;    }} 

这个的结果是,当输入0和负数时打印出

出错啦,不能为负数和0

程序结束

这个例程当中,使用到了异常处理语句

 try

       {

           需要检测的代码。

       }

       catch(MyException  e )//抓取异常,这个可以不用,当不需要处理异常时,这句可以省略

       {

              处理异常的代码。

        }

       finally //这一句,可以不用,当出现异常后还需要做某些动作时这个语句不能省略,这个定义一般用于关闭资源的,在IO流中常用

       {

           一定会则行的代码。

       }

在使用异常的时候需要注意的是throw throws的用法。如例程当中

public static int nul(int a,int b)throws MyException

throws 用于函数上,即函数定义之后。

throw new MyException("出错啦,不能为负数和0");

throw使用在函数内,就是在函数实现功能的语句之内,作为一个语句存在。

总结:异常其实不是很难用习惯了就好,在现阶段的学习当中比较少用自定义异常。使用Java自带的异常时,只需要像MyDemo类内使用即可。而使用IO流时,比较常用的是抛出IO异常。


0 0
原创粉丝点击