java---try和throws异常总结

什么是异常?

异常是对问题的描述,将问题对象进行封装成一个对象.

异常的体系

Throwable
     |—–Error
     |—–Exception
        |—–RuntimeException
  特点:异常体系中的所有类以及建立的对象都具备可抛性.也就是说可以被throw和throws关键字所操作,只有异常类体系具备这个特点,

throw和throws的用法

throw定义在函数内,用于抛出异常对象
throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开的异常类

当函数内容有throw抛出异常对象,并未进行try处理,必须要在函数上声明,否则编译报错.当然RuntimeException除外,也就是说,函数内如果抛出RuntimeException异常,函数上不需要声明.

异常的处理

如果函数声明了异常,调用者需要进行处理,处理方法可以是throws和try
异常有两种:
   编译时被检测异常
     该异常在编译时,如果没有处理(没有抛出也没有try),编译失败
   运行时异常(编译时不检测)
     在编译时不需要处理,编译器不检查
     该异常发生,建议不处理,让程序停止,需要对代码进行修正.

异常处理格式:

try{
//需要被检测的代码
}
catch(){
//处理异常的代码
}
finally{
//一定会执行的代码
}

注意:
1.finally中定义的通常是 关闭资源代码,因为资源必须释放
2.finally只有一种情况不会执行,当程序在finally之前强行停止,也就是System,exit(0)

自定义异常:

定义类继承Exception或者RuntimeException
   1.为了让该自定义类具有可抛性
   2.让该类具备操作异常的共性方法

 当要定义的自定义异常信息时,可以使用父类已经定义好的功能.异常信息传递给父类的构造函数.

class MyException extends Exception
{
    MyException(String message){
        super(message);
    }
}

自定义异常:按照java面向对象的思想,将程序中出现的特有问题进行封装.

异常的处理原则

1.调用到抛出异常的功能时,抛出几个就处理几个.也就是一个try对应多个catch
2.多个catch情况下,父类的catch放到最下面,以免覆盖异常
3.catch内需要定义针对性的处理方式,不要简单的定义输出语句,也不要不写,这是良好的代码习惯

异常的注意事项

在子父类覆盖时:
1.子类抛出的异常必须是父类的异常的子类或者子集
2.如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try,不能抛出

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2015-09-27 14:19  牛李  阅读(838)  评论(0编辑  收藏  举报

导航