黑马程序员----------异常
来源:互联网 发布:湖人火箭7场大战数据 编辑:程序博客网 时间:2024/05/19 05:34
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、异常的概述
程序运行过程中的不正常现象就叫异常。导致程序运行不正常的现象有很多,所以,就有很多的异常对象。而这些异常对象存在着共性的内容,所以,可以不断的进行抽取。最终形成了异常的体系结构。
Throwable是所有异常的超类,它有两个直接子类,Error类和Excetion类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型。
1.Error类 Error类代表的是非常严重的异常,程序不该捕获它,应该直接修改程序。
2.Exception 该类中的异常是大多可以针对性处理的。常见子类RuntimrException和IOException。通常子类名的后缀名都是父类名。这个异常体系的最大特点:该体系中的类和对象都具备可抛性。jvm默认异常处理方式就是将收到的异常名字,信息,位置,都打印在控制台上,结束程序。Throwable中的方法。Exception中没有特有方法,都是继承Throwable中的方法。
String getMessage():获取异常信息。
String toString():覆写Object中,打印名称,信息。
void printStackTrace():打印异常的信息,名称,位置。
二、异常的处理
1.声明抛出 告诉调用者,这个方法可能会出异常,如果要调用这个方法,就必须对这个异常进行处理。一般通过throws将可能发生的异常声明。
void demo() throws Exception{
}
2.对异常进行捕捉 使用try来执行一段可能出现异常的代码,使用catch来捕捉一个异常,然后执行处理代码。可以插入多个catch来捕捉各个异常,多个catch,父类的catch放到最下面。
try{int []x = new int[0];int y = x[0];}catch(Exception e){System.out.println("出错了");}finnally{}
三、自定义异常
自定义异常:是按照java的面向对象思想,将程序中出现的特有问题进行封装自定义异常的好处:
1.将问题进行封装,
2.将正常流程代码和问题代码相分离,方便于阅读。
通过继承一个异常类,我们可以实现自定义异常。
class MyException extends Exception{public MyException( String s ){super(s);}}class Demo2{public static void main(){try{aaa();}catch(MyException e){System.out.println(e.toString());}}static void aaa() throws MyException {throw new MyException("出错啦");}}
自定义异常:是按照java的面向对象思想,将程序中出现的特有问题进行封装自定义异常的好处:
1.将问题进行封装,
2.将正常流程代码和问题代码相分离,方便于阅读。
四、补充
1.finally finally里是指一定会被执行的代码,他的代码执行在try和catch里的return之前,在finally里调用不安全的方法,也需要进行对异常的处理。finally中如果有return,他会先于try中的return执行。
和fannly容易混淆的有final和finally。
final是一个修饰词,修饰变量代表只能被赋值一次,修饰方法,则这个方法不可以被重写,修饰在类上,则这个类无法被继承。
finalize是一个方法名,Java技术使用finalize()方法在垃圾收集器将对象从内存中清除出去前,做必要的清理工作。
2.RuntimeException() 该类异常,函数中可以不声明,不写抛出语句,调用者也可以不做处理,出现该类异常,表示程序无法继续运算。
3.异常在子类复写父类方法时,子类方法只能抛出父类声明的异常或这些异常的子类,如果父类方法没有抛出异常,则子类方法遇到异常只能try并处理。
4.throws和throw的区别 throws写在函数上,方法名之后,后面跟异常类名。而throw写在函数内,后面跟着异常对象。
- 黑马程序员---异常?异常!
- 黑马程序员---异常处理异常
- 黑马程序员-程序异常
- 黑马程序员:异常问题
- 黑马程序员_异常
- 黑马程序员_异常
- 黑马程序员 异常
- 黑马程序员_异常
- 黑马程序员_异常
- 黑马程序员---异常处理
- 黑马程序员二、异常
- 黑马程序员_异常
- 黑马程序员_异常
- 黑马程序员_异常
- 29.黑马程序员-异常
- 黑马程序员-异常类
- 黑马程序员_异常
- 黑马程序员_异常
- Duilib 改造之路 <1> 扩展标签
- SNMP报文PDU格式
- Android开源框架Universal-Image-Loader详解
- Xilinx Zynq器件要点(2)
- Android之利用SharedPreferences进行简单数据存储
- 黑马程序员----------异常
- HDOJ 题目2680 Choose the best route(最短路)
- 设置Windows应用程序图标方法笔记
- CentOS7的bash shell及显示路径、命令补全方法
- linux0.11启动第一步:bootsect.s
- 人人网查看非好友状态
- pttuy 链接本地虚拟机失败解决办法
- 全排列的递归实现
- 可重入函数的概念