A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© a1ccwt 中级黑马   /  2015-8-22 09:30  /  540 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

异类的由来:
1问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述,并封装成对象
2其实就是java对不正常情况进行描述后的对象体现

对问题的划分 一种严重的问题
             一种非严重的问题

对严重:Error类 描述:一般不编写针对性的代码
对非严重:Exception类描述:可以使用针对性的代码

对多异常的处理: 不能同时发生

1声明异常时,可以建立声明更为具体的异常。这一趟处理的可以更具体(不要定义多余的catch块)
如果多个catch块中的异常出现继承关系
父类异常catch放在最下面

建立在进行catch处理时,catch中一定要定义具体处理方式:
  不要简单定义一句
  也不要简单的就书写一条输出语句


自定义异常
当在函数内部出现了throw抛出异常对象
那么就必须要给对于那个对应的处理动作
  要么在内部try catch处理
  要么在函数上声明让调用者处理
一般情况在函数内出现异常,函数上需要声明

自定义异常:必须是自定义继承Exception

继承Exception的原因
异常体系由一个特点:因为异常类和异常对象都被抛出
他们都具备可以抛性,这个可抛性是Throwable,这个体系中独有特点
这有这个体系中的;类和对象才可以被throws和throw操作

throw和throws区别
throws使用在函数上
throw使用在函数
throws后面跟的异常类,可以跟多个用逗号分开
throw后跟的是异常对象

Exception中有一个特殊的子类异常
RuntimeException运行时异常
如果在函数内容【抛出异常,函数上可以不用声明,编译一样通过
如果在函数上声明了该异常,调用者可以不用进行处理,编译一样通过。

之所以不用在函数声明,是因为不需要让调用者处理。
当该异常发生,虚妄程序停止,因为在运行时,出现了无法继续运算的情况希望停止程序后,对代码进行修改。
自定义异常时,如果该异常的发生,无法在继续进行运算,就让自定义异常继承

对于异常分两种
    1编译时被检测的异常
    2编译时不被检测的异常

注意:catch是用于处理异常,如果没有catch就代表异常没有被处理过,如果该异常是检测时异常,那么必须声明。

异常在子父类覆盖中的体现
1子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类
2如果父类方法抛出多个异类,那么子类在覆盖,该方法时,只能抛出父类异常的子集
3如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常,如果子类方法发生了异常,就必须要进行try处理,绝对不能抛

4 个回复

倒序浏览
哇!总结的好详细!
回复 使用道具 举报
谢谢分享,学习了
回复 使用道具 举报
很全面,很有用,谢谢,。。。
回复 使用道具 举报
风华正茂 来自手机 中级黑马 2015-8-22 12:27:03
报纸
谢谢楼主分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马