java API(2)-异常处理

java异常处理


什么是异常
异常是运行时发生的错误,代码中的语法错误不是异常,而是编译错误。

异常的层次结构
Object
   Throwable
       Error(jvm层的)
       Exception
           受检查异常
           运行时异常

java中处理异常的机制
捕获->抛出
处理异常的语法

try{
		//语句块,可能产生异常的语句
}catch(异常类型 e){
		//处理异常
}

关于try和catch使用的注意事项

  • 每个try块可以对应多个 catch,如果catch中能捕获异常,则进行捕获,如果捕获不到,则继续向外抛出
  • 每个try块中可以包含多行代码,一旦出现异常,try块中余下的代码不会执行
  • 如果有多个catch块,那么父类的异常应该放在下方, 否则会编译出错。

关于finally

  • 一个try块中可以最多包含一个finally(可以没有),并且放在try结构的最后
  • 只要进行try块,finally中的代码一定会被调用(退出jvm除外),因此我们可将一定执行的代码(例如释放资源)放在finally中
  • 一个try块中至少应该对应catch或finally中的一个

异常对象可由jvm和用户编码来创建并抛出:(throw 异常对象)
语法:
throw 异常对象
例:throw new ArrayIndexOutOfBoundsException(“数组下标越界”)

throws关键字
throws 放在方法声明之后,throws后面加入一个异常类;说明此方法会抛出一个某类型的异常

异常(Exception)的分类

  • 运行时异常:可以不处理
    • RuntimeException及其子类
  • 受检查异常:必须处理,否则不能通过编译
    • Exception及其子类

处理异常的两种方式

  • 自行处理:通过try -catch自行解决
  • 回避处理:将异常抛给调用者处理,优点是调用者可以自己决定如何处理异常(把处理权交给调用者)。

自定义异常
定义一个类,继承Exception或RuntimeException即可

猜你喜欢

转载自blog.csdn.net/XV9216543/article/details/82154182