JavaSEDemo13异常处理

本文详细介绍了Java中的异常处理机制,包括错误与异常的区别、运行时异常与非运行时异常的分类,以及如何通过try-catch-finally语句块进行异常处理。此外,还对比了throw与throws关键字的不同用法。

简介

  • 本文是2021/04/10整理的笔记
  • 赘述可能有点多,还请各位朋友耐心阅读
  • 本人的内容和答案不一定是最好最正确的,欢迎各位朋友评论区指正改进

Throwable类

  • 所有标准异常的顶级父类是Throwable类
  • Throwable类有两个子类:Exception类和Error类

错误

  • 错误无法被处理,JVM会终止程序,需要程序员手动更改代码。

异常

  • 运行时异常-RuntimeException的子类-非检测异常-编译时不会报错
  • 非运行时异常-Exception的子类-已检测异常-编译时会报错

运行时异常(也叫非检测异常)Unchecked Exception

  • RuntimeException的子类都是运行时异常。
  • 编译没问题,运行会中断

空指针异常

  • NullPointerException

数学异常

  • ArithmeticException
  • 整数除以0时发生该异常
  • 浮点数除以0不会发生该异常

索引越界异常

  • IndexOutOfBoundsException

数组索引越界异常

  • ArrayIndexOutOfBoundsException

字符串索引越界异常

  • StringIndexOutOfBoundsException

数字格式异常

  • NumberFormatException
    demo01-Test5

类型转换异常

  • ClassCastException

非运行时异常(也叫检测异常)Checked Exception

异常处理流程try-catch-finally

  • 语法:
    try{
    可能抛出异常的代码块;
    }catch(异常类型 变量名){
    处理异常的代码;
    }finally{
    不管什么情况,一定被执行的代码块;
    }
  • try catch finally的数量:
    必须有try;catch可以有任意个;finally最多有一个

异常处理流程时常用的方法

  1. printStrackTrace方法
    printStackTrace打印栈的路径信息
  2. getMessage方法
    获取异常的所有信息

throw关键字和throws关键字

  • 运行时异常JVM自动将异常抛出
  • throw关键字用于处理非运行时异常
  • throw关键字的用法:
  1. throw new Exception()向上抛出
  2. catch (Exception e) {throw e} 自行处理
  • throws和方法一起声明:
  • 可能发生异常 也可能不发生
  • throw关键字一般和throws配套使用

throws和throw的区别

  1. throws:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往
    上传,谁调用我我就抛给谁。
    用在方法声明后面,跟的是异常类名
    可以跟多个异常类名,用逗号隔开
    表示抛出异常,由该方法的调用者来处理
    throws表示出现异常的一种可能性,并不一定会发生这些异常
  2. throw:则是用来抛出一个具体的异常类型。
    用在方法体内,跟的是异常对象名
    只能抛出一个异常对象名
    表示抛出异常,由方法体内的语句处理
    throw则是抛出了异常,执行throw则一定抛出了某种异常
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香鱼嫩虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值