第九章 Java异常和异常处理

第一节 Java异常分类

异常:程序不正常的行为或者状态

- int a = 5 / 0

- 数组越界访问

- 读取文件,结果该文件不存在

异常处理

- 程序返回到安全状态

- 允许用户保存结果,并以适当方式关闭程序

Throwable:所有错误的祖先

Error:系统内部错误或者资源耗尽,不管

Exception:程序有关的异常,重点关注。

- RuntimeException:程序自身的错误,5/0,空指针,数组越界···

- 非RuntimeException:外界相关的错误,打开一个不存在的文件···


第二节 Java异常处理

异常处理:

- 允许用户及时保存结果

- 抓住异常并分析内容

- 控制程序返回到安全状态

try-catch-finally:一种保护代码正常运行的机制

异常结构:

- try...catch(catch可以有多个,下同)

- try...catch...finally

- try...finally

try必须有,catch和finally至少要有一个

try:正常业务逻辑代码。

catch:当try发生异常,将执行catch代码。若无异常,绕之。

finally:当try或catch执行结束后,必须要执行finally。

进入catch块后,并不会返回到try发生异常的位置,也不会执行后续的catch块,一个异常只能进入一个catch块。catch块的异常匹配是从上而下进行匹配的。所以一般是将小的异常写在前面,而一些大的宽泛的异常则写在末尾。

方法存在可能异常的语句,但不处理,那么可以使用throws来声明异常。

调用带有throws异常的方法,要么处理这些异常,或者再次向外throws,直到main函数为止。


第三节 自定义异常

自定义异常,需要继承Exception类或其子类。

- 继承自Exception,就变成Checked Exception,IDE辅助检查

- 继承自RuntimeException,就变成Unchecked Exception,IDE不会辅助检查,程序员自行处理

自定义重点在构造函数

- 调用父类Exception的message构造函数

- 可以自定义自己的成员变量

在程序中采用throw主动抛出异常

Public class MyException extend Exception {
    
    private String returnCode; //异常代码
    private String returnMsg; //异常描述信息

    public MyException() {
        super();
    }

    public MyException(String returnMsg){
        super();
        this.returnMsg = returnMsg;
    }

    public MyException(String returnCode, String returnMsg){
        super();
        this.returnCode = returnCode;
        this.returnMsg = returnMsg;
    }

    public String getReturnCode() {
        return returnCode;
    }
    
    public String getReturnMessage() {
        return returnMessage;
    }
}

throw new MyException(“10001”, “The reason of myException”);

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值