黑马程序员_java的异常机制
来源:互联网 发布:egxige蒙古音乐软件 编辑:程序博客网 时间:2024/05/15 01:29
异常:就是程序在运行时候出现不正常的情况
异常由来:问题也是现实生活中的一个具体事物,也可以通过java对类的形式进行描述,并封装成对象
其实就是java对不正常情况进行描述后的对象体现。
异常划分:Error和Exception
error:对于error一般不编写针对性的代码进行处理
exception:对于Exception可以使用针对性的方式进行处理。
二、异常的处理
try{需要被检测的代码}
catch(异常类 变量){处理异常的代码,处理方式}
finally{一定会执行的语句}//final中通常用来关闭资源,只有一种情况不会执行,当执行到System.exit(0)时。
string getMessage():获取异常信息
string toString():获取异常名称以及异常信息
void printStackTrace():获取异常名称,异常信息和异常出现的位置。JVM默认的异常处理机制。
throws Exception:若调用者未处理,编译不通过。
a声明异常时,建议声明为更具体的异常,这样处理可以更具体。
b对方声明几个异常,就对应几个catch块,不要定义多余的catch块。
如果多个catch块的异常出现继承关系,父类异常catch块放到最下面。
c建议在进行catch处理的时候,catch中一定要有具体的处理方式,不要简单的书写一条输出语句。最好记录到异常日志文件中。
因为项目中会出现特有的问题,而这些问题没有被java封装过对象,对这些问题,我们可以按照java的
方式对问题进行封装。
当在函数内部出现了throw抛出异常时,可以通过内部的try catch处理或者在函数上声明异常让调用者处理。
如下例所示
class ZiDingYi extends Exception { } class Demo { int fun(int a,int b) throws ZiDingYi { if(b<0) throw new ZiDingYi();//手动通过throw关键字抛出一个自定义的异常对象 } return a/b; }七、自定义异常添加详细异常信息
以为父类已经把异常信息的操作都完成了,所以子类在构造时,将异常信息传递给父类的super语句,
就可以直接通过getMessage方法获取自定义异常信息。
class ZiDingYi extends Exception { ZiDingYi(String msg) { super(msg); } } class Demo { int fun(int a,int b) throws ZiDingYi { if(b<0) throw new ZiDingYi();//手动通过throw关键字抛出一个自定义的异常对象 } return a/b; }
七、自定义异常继承Exception原因
异常体系有一个特点,因为异常类和异常对象都被抛出,他们都具备可平抛性,
这个可抛性是Throwable体系中独有的特点,只有这个体系中的类和对象才可
被throw和throws操作
八、throw和throws的区别
throws使用在函数上,后面跟异常类,多个用逗号隔开
throw使用在函数内,后面跟的是异常对象。
九、RuntimeException:Exception的特殊子类
a如果在函数内抛出该异常,函数上可以不用声明异常,编译通过。
b如果在函数上声明了异常,调用者可以不用进行处理,编译通过。
c之所以不用再函数上声明,是因为不需要让调用者处理,当该异常发生时,希望程序停止,因为在
运行时,出现了无法继续运算的情况,希望停止程序后对代码进行修正。
d自定义异常时,如果该异常发生无法继续进行运算,就让自定义异常继承RuntimeException
十、覆盖时异常的特点
a子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法只能抛出父类的异常或者该异常的子类。
b如果父类方法抛出多个异常,那么子类在覆盖方法时,只能抛出父类异常的子集。
c如果父类或者接口的方法中没有抛出异常,那么子类覆盖方法时也不能抛出异常。
如果子类方法有异常,就必须进行try处理,绝对不能抛。
十一、异常的好处
a将问题进行封装
b将正常流程代码和问题处理代码相分离方便阅读。
十二、异常处理原则
a处理方式有两种:try和throws
b调用到抛出异常的功能时,抛出几个就处理几个。
c多个catch。父类catch放到最下面
d catch内需要定义针对性的处理方式,不要简单的写上输出语句也,更不要不写。
- 黑马程序员_java的异常机制
- 黑马程序员_java异常机制
- 黑马程序员_java异常机制
- 黑马程序员_Java异常机制
- 黑马程序员_Java异常处理机制
- 黑马程序员_java中的异常机制
- 黑马程序员_java异常处理机制
- 黑马程序员_Java异常处理机制
- 黑马程序员_JAVA中异常处理机制
- 黑马程序员_Java异常
- 黑马程序员_Java异常
- 黑马程序员_JAVA异常
- 黑马程序员_java异常
- 黑马程序员_Java异常
- 黑马程序员_JAVA:异常
- 黑马程序员_java异常
- 黑马程序员_JAVA的异常处理
- 黑马程序员_JAVA异常类的笔记
- 很不错的JAVA异常总结,异常不是想象的那么简单
- 【内核研究】Binder客户端设计
- 打开多个unity项目
- u盘误删除恢复,迅龙数据恢复
- vi进入与离开
- 黑马程序员_java的异常机制
- Linux特殊权限分析(第二版)
- 评分卡模型剖析之一(woe、IV、ROC、信息熵)
- HTML基本标记
- vi输入模式
- 京东理财产品未过“面签”关,上线两天被叫停
- linux相关问题
- Eclipseb无法格式化问题
- [POJ 1141]Brackets Sequence(划分型动态规划)