文章目录
简介
- 本文是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最多有一个
异常处理流程时常用的方法
- printStrackTrace方法
printStackTrace打印栈的路径信息 - getMessage方法
获取异常的所有信息
throw关键字和throws关键字
- 运行时异常JVM自动将异常抛出
- throw关键字用于处理非运行时异常
- throw关键字的用法:
- throw new Exception()向上抛出
- catch (Exception e) {throw e} 自行处理
- throws和方法一起声明:
- 可能发生异常 也可能不发生
- throw关键字一般和throws配套使用
throws和throw的区别
- throws:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往
上传,谁调用我我就抛给谁。
用在方法声明后面,跟的是异常类名
可以跟多个异常类名,用逗号隔开
表示抛出异常,由该方法的调用者来处理
throws表示出现异常的一种可能性,并不一定会发生这些异常 - throw:则是用来抛出一个具体的异常类型。
用在方法体内,跟的是异常对象名
只能抛出一个异常对象名
表示抛出异常,由方法体内的语句处理
throw则是抛出了异常,执行throw则一定抛出了某种异常
本文详细介绍了Java中的异常处理机制,包括错误与异常的区别、运行时异常与非运行时异常的分类,以及如何通过try-catch-finally语句块进行异常处理。此外,还对比了throw与throws关键字的不同用法。
1697

被折叠的 条评论
为什么被折叠?



