我的Java入门过程(14)

本文深入探讨Java中编译时异常与运行时异常的区别,包括它们的处理方式,如throws声明、throw抛出和try-catch机制。讲解了自定义异常的步骤,并介绍了如何通过getMessage(), toString(), printStackTrace()方法获取异常信息。
摘要由CSDN通过智能技术生成

异常

异常就是程序出现了不正常的情况

在这里插入图片描述

编译时异常和运行时异常的区别

  • 编译时异常

    • 都是Exception类及其子类
    • 必须显示处理,否则程序就会发生错误,无法通过编译
  • 运行时异常

    • 都是RuntimeException类及其子类
    • 无法显示处理,但也可以和编译时异常一样处理

在这里插入图片描述

异常的默认处理方式

如果程序出现了异常,而调用者没有做出任何处理,最终Java虚拟机会做出默认的处理

  • 将程序中异常的名称,错误原因以及异常出现的位置等信息输出在控制台
  • 停止程序的继续执行

throws方式处理异常

代码格式

public void 方法() throws 异常类名 {
    
}

注意事项:

  • throws是写在方法的括号后
  • 编译时异常必须进行处理,使用try-catchthrows,在方法上进行显示声明
  • 运行时异常因为在运行时才会发生,所以可以不在方法后声明异常,运行时出现异常默认交给JVM处理

throw抛出异常

代码格式

throw new 异常();

注意事项:

这个格式是在方法内的,表示当前代码手动抛出一个异常,下面的代码不再执行

throws和throw区别

throwsthrow
用在方法声明后面,跟的是异常类名用在方法体内,跟的是异常对象名
表示声明异常,调用该方法有可能会出现这样的异常表示手动抛出异常对象,由方法体内的语句处理

try-catch处理异常

代码格式

try {
    可能出现异常的代码;
}catch(异常类名 变量名) {
    异常的处理代码;
}

执行流程

  • 程序从try里面的代码开始执行
  • 出现异常,就会跳转到对应的catch里执行
  • 执行完毕之后, 程序还可以继续往下执行

注意事项

  • 若try中没有遇到问题,怎么执行?

    会把try中所有的代码全部执行完毕,不会执行catch中的代码

  • 若try中遇到问题,那么try下面的代码还会不会执行?

    若遇到问题,则直接跳转到对应的catch语句中,try下面的代码就不会再执行了

    当catch里的语句全部执行完毕,表示整个体系全部执行完毕,继续执行下面的代码

  • 如果出现问题没有被捕获,那么程序如何运行?

    那么try-catch就相当于没有写,也就是try-catch没有处理,默认交给JVM处理

  • 同时可能出现多个异常怎么处理?

    出现多个异常,那就写多个catch就行

    注意: 如果多个异常之间存在字符类关系,那么父类要写在子类的下面确保子类的catch先将其捕获

throwable成员方法

  • getMessage(): 返回此throwable的详细信息
  • toString(): 返回可抛出的简短描述
  • printStackTrace(): 把异常的错误信息输出在控制台

自定义异常

当Java中提供的异常不能满足我们的需求时,我们可以自定义异常

实现步骤

  1. 定义异常类
  2. 写继承关系
  3. 提供空参和带参构造
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值