码迷,mamicode.com
首页 > 其他好文 > 详细

异常处理

时间:2016-06-04 23:47:19      阅读:413      评论:0      收藏:0      [点我收藏+]

标签:

  我们在使用Java语言高级API进行程序设计之前,我们还需要理解Java语言中另一个基础特色-----异常处理

异常(Exception)是程序在执行过程中所产生的问题。导致异常产生的原因有很多种:

用户输入了无效的数据、找不到一个需要打开的文件、在通讯过程中网络连接断开或者JVM发生了内存溢出

异常的分类:

检查异常-----是用户错误或不能被程序所遇见的问题

运行时异常-----是一个程序在运行过程可能发生的问题

错误-------实际上,错误根本不是异常,但却是用户或程序所无法控制的问题

异常与错误区别:

错误(Error)

  1. 语法错误:最低级的错误---编译期报错,修改为正确的语法
  2. 逻辑错误:编译不报错,运行也不报错,但结果不是我们需要的,往往是算法有问题—编译不报错
  3. 运行时错误:运行期发生错误—不能用代码挽回的,往往是硬件问题和运行环境问题,报错类型名字后面是Error,往往是硬件问题或环境问题,无法用异常处理机制解决

异常(Exception)

检查异常(编译异常CheckedException)--一个方法在声明部分书写了thorws Exception,表示这个方法有可能会抛出异常的,以至于调用者在调用时会受到警告,这种警告标示编译不通过,强制要求调用者对代码进行处理。

处理方法有两种:

一种是继续往上抛,但是不能抛向虚拟机。

一种是调用者用try—catch处理

throws---书写在方法声明的最后,后面跟的是异常类名,而且可以有多个类名(中间由逗号分隔);表明本方法有可能发生某个类型的异常

throw—书写在方法体,后面跟的是异常对象(只能跟一个对象);一旦执行到throw这句代码,就一定会发生异常

如果throw后面的异常对象是编译时异常,那么该方法声明后面必须加throws

如果throw后面的异常对象是运行时异常,那么该方法声明后面可以不加throws

 

运行时异常(未检查异常)--在运行期报错,报错类型名字后面是Exception,可以使用异常处理机制

 

运行时异常处理机制:

  1. 修改源代码,将异常情况避免掉(最好)
  2. 使用异常捕获机制try—catch—finally(不管是否发生异常,都必须要执行的代码)

 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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!