标签:
我们在使用Java语言高级API进行程序设计之前,我们还需要理解Java语言中另一个基础特色-----异常处理
异常(Exception)是程序在执行过程中所产生的问题。导致异常产生的原因有很多种:
用户输入了无效的数据、找不到一个需要打开的文件、在通讯过程中网络连接断开或者JVM发生了内存溢出
异常的分类:
检查异常-----是用户错误或不能被程序所遇见的问题
运行时异常-----是一个程序在运行过程可能发生的问题
错误-------实际上,错误根本不是异常,但却是用户或程序所无法控制的问题
异常与错误区别:
错误(Error)
异常(Exception)
检查异常(编译异常CheckedException)--一个方法在声明部分书写了thorws Exception,表示这个方法有可能会抛出异常的,以至于调用者在调用时会受到警告,这种警告标示编译不通过,强制要求调用者对代码进行处理。
处理方法有两种:
一种是继续往上抛,但是不能抛向虚拟机。
一种是调用者用try—catch处理
throws---书写在方法声明的最后,后面跟的是异常类名,而且可以有多个类名(中间由逗号分隔);表明本方法有可能发生某个类型的异常
throw—书写在方法体,后面跟的是异常对象(只能跟一个对象);一旦执行到throw这句代码,就一定会发生异常
如果throw后面的异常对象是编译时异常,那么该方法声明后面必须加throws
如果throw后面的异常对象是运行时异常,那么该方法声明后面可以不加throws
运行时异常(未检查异常)--在运行期报错,报错类型名字后面是Exception,可以使用异常处理机制
运行时异常处理机制:
Try(试运行){
正常情况下有可能发生异常的代码
}catch(捕获—异常的引用为异常代码变量
){
执行catch块当中的代码
}catch(Exception e){
e.printStackTrace();
}finally{
}
当Try后面有多个catch块时候,这多个catch块捕获异常有继承关系时必须遵照子类catch块写前面,父类catch块写后面
System.exit(0)—关闭虚拟机—这句代码才能终止finally
Final:用于修饰不变的,包括常量,终态类,不可重写的方法
Finally:异常捕获机制,不管是否发生异常,都必须要执行的代码
Finalize:销毁机制,GC调用
如果程序员主动抛出一个异常,需要使用throw异常对象
子类重写方法不能比父类被重写方法抛出更多异常,这里的更多指的是范围,而不是个数(异常是有继承关系)
Continue— 跳出循环,进入下一次循坏
Break— 结束这个循环
Return— 结束本方法,或者返回一个值
自定义异常
表示层:任务—做界面
业务层:任务—做业务
持久层:任务—操作数据访问
标签:
原文地址:http://www.cnblogs.com/yangpeng123/p/5559789.html