Java基础总结-异常处理

来源:互联网 发布:天天聚财网网络贷款 编辑:程序博客网 时间:2024/06/05 20:24

异常处理

Java异常是指Java提供的用于处理程序中错误的一种机制,所谓错误是指在程序 /*运行*/ (指敲javac命令编译成功,敲java命令运行出错)的过程中发生的一些异常事件

try 和 catch  的使用 (try 是使用 catch 的 /*前提*/)

try {
  someMethod();    //可能出错的代码
} catch (SomeException e) {
//异常处理代码 (如果发现异常,需要执行什么)
//e.printStackTrace();   //打印错误的堆栈信息,另外,当发生错误时,对象e自动初始化
}


异常的分类

       Throwable(可被抛出的)所有的异常类都来源于 Throwable 这个根类
               /           \
           Error             Exception
             /                 |     \
          *****             *****     RuntimeException   
                                                \
                                               *****

Error 系统错误,虚拟机错误,无法处理
Exception 可以处理的异常 可以 catch
普通的 Exception 必须进行处理
RuntimeException 经常出的一种错误(被0除,数组下标越界),产生频繁,可以处理,可以不处理


异常的捕获和处理

try { try 语句:
//可能抛出异常的语句 1.try{...} 语句指定了一段代码,这段代码就是一次捕获并处理的范围.
}catch (SomeException1 e)        2.在执行过程中,这段代码可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句分别对这些异常做     出相应的处理.
{  3.如果没有例外产生,所有的catch代码段都被略过不执行.
.... 4.如果try{...}中有语句1和语句2,如果语句1发生错误,抛出异常,语句2不会执行,直接执行catch语句

}catch (SomeException2 e)       catch 语句: 
{  1.用于处理可能产生的不同类型的异常对象.
    ....  2.在catch的语句块中,可以使用异常对象的一些方法获取这些信息.如:getMessage()方法,printStackTrace().
}finally {
    .... finally 语句:
}  1.finally 语句为异常处理提供一个统一的出口
 2.无论 try所指定的程序块中是否抛出例外,finally所指定的代码都要被执行.
 3.通常在finally语句中可以进行资源的清除工作,如:1.关闭打开的文件;2.删除临时文件等


throw 和 throws

1、throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。
       通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法声明中指明要抛出的异常;
           如果要捕捉throw抛出的异常,则必须使用try—catch语句。
           
2、throws关键字通常被应用在声明方法时,用来指定可能抛出的异常.可以一直向上抛,Java的例外处理机制,使得例外事件沿着被调用的顺序往前寻找,直到找到相应try-catch。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象。

      
 throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常。
 (throw 常用于抛出指定异常,如  throw new RunTimeException(e)  ; throw new UserExistException(); )


补充:1.先逮小的,再逮大的(用catch逮异常时,需注意异常的大小)
            2.异常和重写的关系:一个方法后面抛出了异常 (m() throws SomeException) 重写该方法时需要抛出与原方法所抛出的异常类型一致或者不抛出异常

原创粉丝点击