java---try和throws异常总结

什么是异常?

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

异常的体系

Throwable
     |—–Error
     |—–Exception
        |—–RuntimeException
  特色:异常体系中的全部类以及创建的对象都具有可抛性.也就是说能够被throw和throws关键字所操做,只有异常类体系具有这个特色,markdown

throw和throws的用法

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

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

异常的处理

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

异常处理格式:

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,不能抛出

相关文章
相关标签/搜索