您的位置:首页 > 编程语言 > Java开发

java基础篇(三)——异常问题

2017-01-10 21:09 155 查看

引言:

              异常不是错误,请你别误会,反而我们可以说错误是一种异常。

概述:

              异常:程序运行过程中可能出现的非正常状态。

内容:

               一 Java异常分类           

             (1)Java不同类型的异常分别用不同的Java类表示。所有异常的根类为java.lang.Throwable,Throwable派生俩个子类Error和Exception。Error表示程序无法克服和回复的严重问题;Exception表示程序可以克服和恢复问题,分为系统异常和普通异常。系统异常指因软件开发人员考虑不周所导致软件本身缺陷问题,软件使用者无法克服或者恢复这种问题,这种问题下软件或者继续运行或者卡死。例如我们电脑的软件因为特殊原因强制退出,或者卡死状态。普通异常是运行环境改变或异常所导致的问题,例如网络异常、空间不够等。

             (2)解决方案:对于普通异常,java编译器强制普通异常必须try...catch处理或用throws声明继续抛给上层调用方法处理,也称之为checked异常;然而系统异常可以处理也可以不处理,编译器不强制用try...catch处理或throws声明,固称之为unchecked异常。

             二 Java异常处理原理及其机制

             (1)原理:一个方法在执行过程中抛出异常,JVM必须找到能捕获该异常的catch代码块,首先先检查本方法是否存在这样的catch代码块,如果存在,则执行该处理异常代码块;若不存在,JVM会从调用栈中弹出该方法的栈结构,继续到前一个方法中查找合适的catch代码块,在不断回溯查找过程中,若在某一个方法中找到了能处理该异常的代码块,则该方法的栈结构将成为栈顶元素,程序流程将转到该方法的异常处理代码部分继续执行,但是如果JVM追溯到调用栈的底部方法时,仍然没有找到处理该异常的代码块,就会调用异常对象的printStackTrace()方法,打印出异常信息,接着如果该线程不是主线程,终止该线程,其他线程继续正常执行,反之,整个程序被终止。

             (2)机制:try...catch、finally、throw、throws。

         三 常见的异常类

              


             (1)IOException:操作输入流和输出流可能出现的异常;

             (2)ArithmeticException:数学异常。如果把整数除以0,就会出现这种异常。

             (3)NullPointerException:空指针异常。当引用变量为null时试图访问对象的属性或方法,就会出现这种异常。

             (4)IndexOutBoundsException:下标越界异常。它的子类ArrayIndexOutOfBoundsException表示数组下标越界异常。

             (5)ClassCastException:类型转换异常。

             (6)IllegalArgumentException:非法参数异常。可用来检查方法的参数时候合法。

         四 推荐网址

                更加详细的知识,大家请点击后面的链接:点击此链接。

总结:

                Java的异常处理机制很强大,不过也不能每个方法都用,开发人员可以凭借经验以及实践,在适当的方法里面加入适当的异常处理,增强我们软件的健壮性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐