黑马程序员——java中的异常
来源:互联网 发布:hadoop java 统计订单 编辑:程序博客网 时间:2024/06/06 15:18
------- android培训、java培训、期待与您交流! ----------
异常的概念:
异常就是对问题的描述,将问题进行对象的封装
异常的体系:
结构 :Throwable
|---Error
|---Exception
|---RuntimeException
特点: 异常体系中的所有类以及建立的对象都具备可抛性,也就是说可以被
throw和throws关键字所操作。也只有异常体系具备这个特点。
throw和throws的用法:
throw定义在函数内部,用于抛出异常对象。
throws 定义在函数上(在声明函数的小括号和大括号之间),用于抛出异常类,可以抛出多个,用逗号隔开
class MyException extends Exception{//继承Exception让MyException具有可抛性public void show()throws MyException{//在函数上抛出throw new MyException();//在函数内抛出}}注意:当函数内有throw抛出异常对象,并未进行相应的try处理,必须要在函数上声明,否则编译失败。
但是RuntimeException除外,也就是说如果函数内抛出RuntimeException或者他的子异常,函数上可以不用声明
如果函数声明了异常,调用者需要进行处理。处理的方法可以是throws也可以是try
异常的种类:
异常有两种
1 编译时被检测的异常
这种异常在编译时,如果没有进行处理(没有throws也没有try),编译失败。
该异常被标示,代表着可以被处理。
2 运行时异常(编译时期不检测)
在编译时,不需要进行处理,编译器不会检测
该异常的发生,建议不要处理,让程序停止。需要修改代码。
异常处理语句:
try{//需要被检测的代码}catch(){//处理异常的代码}finally{//一定会执行的代码}处理语句的三种结合格式:
//1try{}catch(){}finally{}//2try{}catch(){}//3try{}finally{}注意:
在finally中定义的通常是关闭资源的代码,因为资源必须释放。
finally只有一种情况不会执行,那就是执行到了System.exit(0),java虚拟机就退出了。
自定义异常:
定义类继承Exception或者RuntimeException
1 让自定义的类具备可抛性
2 让该类具备操作异常的共性方法
当到定义自定义异常的信息时,可以使用父类已经定义好的功能,将异常的信息传递给父类的构造函数
class MyException extends Exception{//继承Exception让MyException具有可抛性MyException(String message){ super(message);//将异常信息传递给父类的构造函数}}异常的好处:
1 将问题进行封装
2 将正常流程代码和问题代码想分离,方便于阅读
异常的处理原则:
1 处理方式有两种: try 或者 throws
2 调用到抛出异常的功能时,抛出几个就处理几个 ,一个try可以对应多个catch
3 多个catch,父类的catch放到最下面。以为在最上面,下面的catch都执行不到,报错
4 在catch内,需要定义针对性的处理方式,不要简单的定义输出语句,也不要不写。
5 当捕获到异常时,如果本功能处理不了,可以继续在catch中抛出。
6 如果捕获到的异常处理不了,但并不属于该功能出现的异常,可以将异常转换后,再抛出和该功能相关的异常
异常在子父类覆盖时:
1 子类抛出的异常必须是父类的子类或者子集
class A extends NullPointerException{public void show()throws NullPointerException{}}class B extends A{public void show()throws A{//只能抛出NullPointerException或者NullPointerException的子类A}}
2 如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try不能throws
class A extends Exception{public void show(){//父类方法没有抛出异常}}class B extends A{public void show(){try{//子类覆盖时只能try不能throwsthrow new A();}catch(Exception e){}}}
- 黑马程序员——java中的异常
- 黑马程序员—java中的异常
- 黑马程序员——java基础---Java语言中的异常
- 黑马程序员—java异常
- 黑马程序员——浅谈java中的异常机制
- 黑马程序员——Java中的异常机制总结
- 黑马程序员——Java中的异常处理
- 黑马程序员——Java中的异常和包
- [黑马程序员]——java中的异常Exception
- 黑马程序员----java中的异常
- 黑马程序员---(学习日记——异常)java中的异常机制
- 黑马程序员--Java基础--java中的异常
- 【黑马程序员】 java笔记——异常
- Java异常学习——黑马程序员
- 黑马程序员——Java异常
- 黑马程序员——Java基础---异常
- 黑马程序员——Java基础--- 异常
- 黑马程序员——Java异常、包
- 03-el表达式:操纵map、索引
- 移动互联网APP测试流程及测试点
- 几个常用函数(切除字符串,时间处理,文件上传)
- TestNG如何修改运行结果(通过使用监听器和报表器,可以很轻松的生成自己的TestNG报表)
- 单项加密算法
- 黑马程序员——java中的异常
- Apache CXF快速入门基础教程
- java基础复习之集合
- 04-EL表达式中的if...else....
- 数据库存储过程以及对存储过程调用
- nodejs + express4.x + mongodb 创建登陆
- 跳表
- 黑马程序员—OC学习笔记—继承与super关键字运用
- WebSocket+HTML5实现在线聊天室