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的异常处理机制很强大,不过也不能每个方法都用,开发人员可以凭借经验以及实践,在适当的方法里面加入适当的异常处理,增强我们软件的健壮性。相关文章推荐
- JAVA基础测试中异常问题汇总
- 对于JAVA基础测试中常见的异常问题汇总
- Java异常框架中finally执行、及其他相关问题
- 关于oracle设置不活动自动断开连接导致java访问数据库时发生异常的问题
- 在与sap系统集成时遇到的问题.sap系统发布一webservice,java(xfire)作为客户端调用,调用时抛出如下异常: Wrong Content-Type and empty HTTP-Body received: ("HTTP Code 20
- java 异常的问题讨论
- java基础问题----Java中的异常处理机制的简单原理和应用
- Tomcat在启动时出现如下异常问题:IOException while loading persisted sessions: java.io.EOFException
- 解决 RNI接口调用出现的异常UnsatisfiedLinkError: no jtokyocabinet in java.library.path 及 wrong ELF class: ELFCLASS64问题
- 关于出现List的java.util.ConcurrentModificationException异常问题的解决
- BeanUtils与PropertyUtils区别以及java.util.Date发生异常问题
- 对于JAVA基础测试中常见的异常问题汇总
- 【原创】如何解决java.net.SocketException 异常问题
- java 异常问题 No bean named 'sessionFactory' is defined
- 关于Java异常问题。
- 【原创】java.lang.ClassCastException异常问题解决
- Java自动装箱的异常问题
- HPUX环境,在WebLogic服务器中使用java调用C动态连接库异常问题总结
- Java调试的重要,异常处理中输入异常处理问题
- Java基础篇笔记(二) ---容易忽视的表达式结果的类型,求概率、几率问题