1.异常
来源:互联网 发布:音频剪切合并软件 mac 编辑:程序博客网 时间:2024/06/05 11:30
异常体系:
- |——Throwable (实现类描述java的错误和异常)
- |——Error (错误)
- |——Exceprion (异常)
- |——RuntimeException (运行时异常)
- |——非运行时异常(编译时异常/受检异常)
Throwable常用方法
- toString() 返回当前异常对象的完整类名
- getMessage() 返回的是当前创建Throwable传入的字符串信息
- printStackTrace() 打印异常的栈信息
Error (错误):一般是jvm或硬件引发的问题,一般不通过代码去处理。
Exceprion (异常):需要通过代码去处理
RuntimeException (运行时异常):如果一个方法内部抛出了一个运行时异常,方法上可以声明也可以不声明,调用者可以处理也可以不处理(运行时异常都是可以通过良好的编程习惯避免的,所以没有严格要求处理)
编译时异常:如果一个方法内部抛出了一个编译时异常对象,那么方法上必须要声明,调用者也必须要处理
异常的处理:
1.捕获处理:
try {可能发生异常的代码} catch ( 捕获的异常类型 变量名 ) {处理异常的代码}
注意细节:
- try块代码出现异常,经过处理后,try-catch块外面的代码可以正常执行
- try块中,异常代码之后的代码不会执行
- 一个try块后面可以跟多个catch块
- 一个try块可以捕获多种异常类型,但是捕获的异常类型必须从小到大捕获,否则编译报错
2.抛出处理:
方法定义 throws Exception1, Exception2,···,··· { //声明异常,throws 后跟异常类,可以一次声明多种类型的异常,通知方法调用者
throw new Exception1("抛出异常"); // throw关键字后面接受的是具体的异常的对象
}
注意细节:
- 如果一个方法内部抛出了一个异常,那么必须在方法上声明抛出
- 如果调用了一个声明抛出的方法,那么调用者必须要处理异常
- 如果一个方法内部抛出了一个异常对象,那么throw语句后面代码都不会执行了(一个方法遇到了throw关键字,方法会马上停止执行)
- 在一种情况下,只能抛出一种类型异常对象
3.自定义异常:
自定义一个类继承Exception即可
finally块
使用前提:必须存在try块才能使用
finally是在return语句执行之后,返回之前执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,不管finally中的代码怎么样,返回的值都不会改变,仍然是之前保存的值)
finally块代码在任何情况下都会执行,除了jvm退出的情况【不管有木有出现异常,finally块中代码都会执行;当try和catch中有return时,finally仍然会执行】
适合做资源释放的工作,可以保证资源文件在任何情况下都被释放。
阅读全文
2 0
- 1.异常
- 1.C++异常处理
- CoreJava读书笔记-------<1.异常>
- 异常
- 异常!
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 题目1026:又一版 A+B
- Smart Cutter(M2TS/MTS/TS/TRP/MP4无损剪辑软件) v1.8.3 绿色汉化版
- 【OpenCV入门指南】第六篇 轮廓检测 下
- 计算几何 矢量表示
- 在.net中读写config文件的各种方法
- 1.异常
- 关于vs助手Visual_Assist_X_10.8.XXXX
- JavaSE-tow
- 剑指offer--31连续子数组最大和
- SQL知识点梳理
- 【OpenCV入门指南】第七篇 线段检测与圆检测
- String的注意事项
- TensorFlow学习笔记(一)
- Android N编译之Out of memory error