java异常处理体系

体系
关系 
Throwable是顶级父类,其下分为Exception(异常)和Error(错误);Exception又分RuntimeException(运行时异常)和其他异常(可检查异常);
运行时异常(RuntimeException)和可检查异常的区别

1.父类不同:运行时异常的父类为RuntimeException;而可检查异常的父类是Exception;

2.处理方式不同:可检查异常需要强制处理:通过try-catch快把和throws处理;

标准处理流程

1.try块包裹可能出现的异常代码;

2.catch用于捕获并处理异常(含运行时的异常),每个catch块处理一个异常;

3.一旦执行出现异常,流程转向相应的catch块,try块的后续代码不再执行;

4.多个catch块只有一个会执行;表明一旦发现异常就停止并捕获,

5.finally块,不管是否出现异常都会执行;

6.catch块也可以处理RuntimeException(运行时的异常);

7.catch块中声明能够捕获父类,则抛出子类异常时也可以被处理;

8.如果catch块中声明捕获的异常存在父子关系,则需要把子类放在前面,父类放在后面,否则子类无法被执行;

9.try块中,try块必须有,catch和finally二中其中一个也必须有,也可以两种都有;

10.两个catch中的异常可合并在一起(非父子关系),格式ExceptionA | ExceptionB;

11.return不论在正常流程还是异常流程中,finally都会执行;

12.System.exit(0)会关闭虚拟机,finally不会执行;

throw和throws的区别

1.throws后跟异常名;throw后跟异常实例;

2.throws表达的是该方法会抛出此异常;throw是抛出异常;

3.throws是方法签名的一部分;throw是方法体的一部分;

自定义异常

新建一个类继承相应父类异常;

例:

public class StockInsufficentException extends RuntimeException {
    public StockInsufficentException(){
    super();
    }
    public StockInsufficentException(String message,Throwable cause){
    super(message,cause);
    }
    public StockInsufficentException(String message){
    super(message);
    }
    public StockInsufficentException(Throwable cause){
    super(cause);
    }
}

   

    

        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值