投稿 资料上传 搜索
您现在的位置是: 首页 > 文章 > 正文

java异常处理详解

介绍

    异常是程序执行时遇到的非正常情况和意外行为,异常不像错误那么严重,异常产生时,程序本身可以解决,由异常代码调整程序运行方向,使程序仍可继续运行,直至程序正常结束。在Java程序中,当程序出现非正常情况的时候,就会在错误的地方产生一个异常对象,该异常对象包括错误类型,错误出现时程序的运行状态以及对该错误的详细描述。

    下面就针对Java中对异常的处理做个详细讲解。有些地方讲的不对的,还请帮忙指出,大家相互学习,共同进步!!!

异常出现的情形

    在讨论异常,首先要清除在那些情形下可能出现异常,我根据个人理解,大致由一下情形:

    1.代码或调用的代码(如共享库)中有错误;

    2.操作系统资源不可用;

    3.公共语言运行库遇到意外情况(如无法验证代码);

    4.数组下标越界,内存溢出等。

    总之,出现的异常的情形还有很多,就不一一列出来了。

异常处理基本框架

method() throws ExceptionType1 , ExceptionType2 ,.....{
...
try{ ... //程序块 }chtch(ExceptionType1 e){
...//对ExceptionType1的处理

  }chtch(ExceptionType2 e){
...//对ExceptionType2的处理

  }finally{

    ...//无论异常发生与否都要执行的代码

  }

}

Java 中Throwable类

    在Java中,每一个异常都是一个对象,该对象或者是Throwable类的实列,或者是其它子类的实列。

    Throwable类有两个标准的子类:

        1.Error (错误类):Error 类一般与虚拟机相关,如:系统崩溃,虚拟机出错等。这一类错误无法恢复或不可能捕获,将导致应用程序奔溃;

        2.Exception(异常类):是指那些可以捕获并能恢复的异常,如:ArrayIndexOutOfBoundsException(数组下标越界异常),IOException(输入/输出异常)等;

   

异常抛出与异常捕获

    Java中异常处理是通过5个关键词来实现的,即:try,catch,throw,throws和finally。通常情况下try,catch,finally是组合一起使用,另外两个抛出异常也是组合使用。

    1.异常抛出

        异常抛出,需要通过throws关键指定可以抛出的异常,然后使用throw抛出异常。语法结构如下:

 method() throws ExceptionType1 , ExceptionType2 ,.....{
     ...
throw new ExceptionType1("抛出异常1错误");
... throw new ExceptionType2("抛出异常2错误");
... }

    2.异常捕获处理

        异常通过try来包裹住可能出现异常的代码块,然后通过catch来进行错误处理,或是最后通过finally来处理。语法结构如下:

  try{
... //程序块
}chtch(ExceptionType1 e){
...//对ExceptionType1的处理
}finally{
...//无论异常发生与否都要执行的代码
}

自定义异常

    在Java类库中已经为我们提供了丰富的异常处理机制,能满足绝大多数的异常情况;但还是有少数情况下,需要我们自定义异常,以满足特定需要。

    自定义异常非常简单,只需要自定义异常类继承ExceptEion类,然后进行扩展就可以了。语法如下:

class 自定义异常类名 extends ExceptEion{...}

总结

    由于本人技术有限,可能有些地方阐述的不太清楚,但本着乐于分享心态。希望这篇对Java异常处理的讲解对大家有所帮助。


转载于:

文章标签:
给作者打赏,鼓励TA抓紧创作!
评论
  1. laical

    谢谢分享

    回复

友情提示

你好!遇到什么技术难题了嘛?请点击我要提问,我们免费帮您解答!!!

大家都在问