JAVA从入门到精通(12)-- 错误处理
来源:互联网 发布:虚幻4引擎和unity3d 编辑:程序博客网 时间:2024/05/16 10:39
一、JAVA异常简介
1》异常简介:
a、异常处理的作用
b、Java异常体系结构的简介
2》处理异常:
a、try-catch以及try-catch-finally
b、抛出异常
c、自定义异常
d、异常链
3》异常定义:
有易于常态,和正常情况不一样,有错误出现,阻止当前方法或作用域,称之为异常。
4》异常的体系结构
Throwable----->Error :不常见的错误类型,通常指系统错误,比如:虚拟机错误或线程死锁(程序终结者)
|
|------------->Exception:异常,比如指编码、环境、用户操作输入出现问题
|-------->非检查异常:RuntimeException:比如空指针异常、数组下标异常、算数异常
|-------->检查异常:比如:文件异常、SQL异常
二、处理异常
1》try {
//一些会抛出异常的方法
}catch(Exception e){
//处理该异常的代码块
}
如果try中确实发生异常了,程序将会终止执行,程序的控制权将被移交给catch块中的异常处理程序。
catch如何处理呢?可以发出警告,或者记录错误日志。
2》多重try-catch块
处理不同的异常
注:catch块是先子类后父类。
3》try-catch-finally
try {
//一些会抛出异常的方法
}catch(Exception e){
//处理该异常的代码块
}...(n个catch块)...{
}finally{
//最终将要执行的一些代码
}
三、Java中异常抛出以及自定义异常
1》异常抛出
throw:将产生的异常抛出(动作)
throws:写在方法名和方法参数表之后,方法体之前,可抛出多种异常,每个异常用 , 隔开
声明将要抛出何种类型的异常(声明)
public void 方法名(参数列表) throws 异常列表{
//调用会抛出异常的方法或者:
throw new Exception() ;
}
2》自定义异常
自定义异常:自己定义的异常类型
class 自定义异常类 extends 异常类型{}
四、异常链
1》定义:捕获的异常包装成新的异常,新的异常添加对原始异常的引用,再把新的异常抛出。
五、实际应用的经验和总结
1》处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理
2》在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
3》对于不确定的代码,也可以加上try-catch,处理潜在的异常
4》尽量去处理异常,切忌只是简单的调用printStackTrace()去打印输出,可加以适当的辅助,例如:业务的回滚
5》具体如何处理异常,要根据不同的业务需求和异常类型去决定。
6》尽量添加finally语句块去释放占用的资源
- JAVA从入门到精通(12)-- 错误处理
- Java从入门到精通 - 异常处理
- Java从入门到精通 - Java数字处理类
- (转帖)java从入门到精通
- Java学习从入门到精通 ()
- JAVA从入门到精通(1)
- JAVA从入门到精通(2)
- JAVA从入门到精通(3)
- JAVA从入门到精通(4)
- Golang从入门到精通(二十):Golang错误处理之error
- Golang从入门到精通(二十一):Golang错误处理之panic-recover
- Golang从入门到精通(二十二):Golang错误处理之defer
- JAVA从入门到精通
- JAVA从入门到精通
- JAVA从入门到精通
- java 从入门到精通
- Java从入门到精通
- java从入门到精通
- Android跳转到通讯录选择联系人
- java基础--学习总结
- 处理中文链接
- git常用操作命令
- POJ1037————A decorative fence(动态规划)
- JAVA从入门到精通(12)-- 错误处理
- 静默安装apk
- MINA、Netty、Twisted一起学(十二):HTTPS
- 数组和链表的优缺点
- 深入Java关键字this的用法和总结
- 图片裁剪控件ImageViewCrop
- Java-使用Callable实现多线程的之JDK源码简单学习实践
- KMP算法
- 5种控制变量可学习性的方法(PyTorch)