Java基础(六)异常
来源:互联网 发布:ug攻丝编程 编辑:程序博客网 时间:2024/06/06 03:32
throws和throw的区别
throws在使用函数上,后面跟的是异常类,可以跟多个,用逗号隔开。
throw使用在函数内,后面跟的是异常对象。
异常的种类
1.编译时被检测异常
该异常在编译时,如果没有处理(没有抛也没有try),编译失败。该异常被标识,代表着可以被处理。
2.运行时异常(编译时不检测)
在编译时,不需要处理,编译器不检查。该异常的发生建议不处理,让程序停止,对代码进行修正。用到的是Exception的特殊子类异常RuntimeException,让自定义异常继承RuntimeException。
异常体系
Throwable |--->Error |--->Exception |--->RuntimeException
异常体系特点:
1.异常体系中的所有类以及建立的对象都具备可抛性。(可以被throw和throws关键字操作)。
异常处理格式
try{ 需要检验异常的代码:}catch(异常类 变量){ 处理异常的代码(处理方式);}finally{ 一定会执行的语句;}
需要注意:
1.再函数上声明异常,让调出进行处理,不处理编译失败。
System.out.println(e.toString());//异常名称:异常信息e.printStackTrace();//异常名称,异常信息,异常出现的位置。
2.在类方法上 throws Exception //在功能上通过throws关键字,声明了该类可能会出现问题。
3.建议声明较为具体的异常。
4.声明几个异常,就应该有几个catch块,如果catch块中的异常出现集成问题,父类异常catch块放在最先。
自定义异常
定义类继承Exception或者RuntimeException
1.为了让该自定义类具备可抛性。
2.让该类具备操作异常的共性方法。
3.按照java的面相对象思想,将程序中出现的特有问题进行封装。
class MyException extends Exception{ MyException(String message){ super(message); }}
异常的好处:
1.将问题进行封装。
2.将正常流程代码和问题处理代码分离,方便于阅读。
异常处理原则
1.try或throws
2.调用到抛出异常功能时,抛出几个就处理几个,一个try对应多个catch
3.catch内要定义针对性的处理方式,不要只简单定义printStackTrace。
4.如果父类或者借口没有异常抛出时,子类覆盖出现有异常,只能try不能抛。
体现
1.子类覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法只能抛出父类的异常或者该异常的子类。
2.如果父类抛出多个异常,那么子类覆盖该方法时,只能抛出父类异常的子集。
3.如果父类或者借口的方法中,没有异常抛出,那么在子类覆盖方法时,也不可以抛出异常。
4.如果子类方法发成了异常,就必须要进行try处理,决不能抛。
- java基础(六),异常
- Java基础(六)异常
- java 基础:异常处理(六)
- 笔记整理(java基础六-----异常)
- 黑马程序员---------笔记整理(java基础六-----异常)
- Java基础<六>_异常、包
- Java学习(六) 异常
- Java基础(异常)
- 黑马程序员-(11)Java基础之面向对象(六)异常
- Java基础之面向对象(六)--异常、包
- Java基础之面向对象(六)--异常、包
- Java基础 笔记(六)
- Java基础(六) 集合
- java基础(六)------接口
- Java基础学习(六)
- Java语言基础(六)
- java基础(六):数组
- Java进击(六)异常处理
- 技能分享 | 麦肯锡教给我的写作武器:如何讲好一句话
- Java实现多线程的三种方式
- JQuery EasyUI的常用组件
- 在vs2013(vc12)上安装opencv
- POJ2559-Largest Rectangle in a Histogram
- Java基础(六)异常
- 合并两个有序链表
- Python-图像的手绘效果
- Android把Bitmap保存为PNG图像文件的简单方法(同步)
- java的基本概念:进制、单位、编码、数据类型、变量声明、ASCII码
- 继承BroadcastReceiver获得手机的短信
- 基于Centos搭建ELK环境指南
- Call to a member function format() on string
- Lesson007作业 python