异常

异常类型结构图
image

在Java中,所有的异常都有一个公共祖先java.lang包中的Tgrowable类,有两个重要的子类Exception(异常)和Error(错误).

Error:是程序无法处理的错误.一般是代码运行时JVM出现的问题,不能手动解决 .
Exception(异常):是程序本身可以处理的的异常,RuntimeException由虚拟机抛出,可以被程序本身处理.

Throwable类的主要方法
  • public String getMessage(): 返回异常发生时的详细信息
  • public String toString(): 返回异常发生时的简要描述
  • public String getLocalizedMessage(): 返回异常对象的本地化信息,可以用子类覆盖该方法,如果没有覆盖,则返回的信息与getMessage()方法相同.

关键字

try块:用于不会异常,后面可跟多个catch块,如果没有catch块,则必须跟一个finally块

try {
    //存放可能发生异常的代码
    
}catch(ArrayIndexOutOfBoundsException E){    //捕捉异常对象    

}catch(NullPointException e){    
}

catch块:用于处理try捕获到的异常

  • 不要过度细分异常 //基类引用 引用派生类对象
  • 多个catch 并列的情况 ,先抓子类异常对象,然后再抓父类对象

throw(扔异常对象)

  • 方法名后面直接扔出异常,交给调用它的方法执行
void fun()throws 异常类名1,异常类名2{
    
}

finally块:无论是否捕获或者处理异常,finally块的内容都会执行

  • 当在try块与catch块中遇到return语句中时,finally语句块会在方法返回前执行.
  • finally不会执行的情况<一> :在前面的代码中用了System.exit(int)已退出程序。这种情况时直接杀死了进程.finally不执行.
  • finally不会执行的情况<二>: 线程被杀死

关于返回值:

如果try语句里有return,返回的是try语句块中变量值。 详细执行过程如下:

  • 如果有返回值,就把返回值保存到局部变量中;
  • 执行jsr指令跳到finally语句里执行;
  • 执行完finally语句后,返回之前保存在局部变量表里的值。
  • 如果try,finally语句里均有return,忽略try的return,而使用finally的return.

值得注意的是,一般不在finally使用return语句.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值