java异常的原理以及应用

父类Throwable

两个分支:

error:合理的应用程序不应该出现的严重问题,可以无需声明便抛出,比如内存溢出。

 

Exception:程序还能够克服和恢复的问题。

其中又分为系统异常和普通异常。

系统异常是软件本身缺陷所导致的问题,也就是软件开发人员考虑不周所导致的问题,软件使用者无法克服和恢复这种问题,但在这种问题下还可以让软件系统继续运行或者让软件死掉,例如,数组脚本越界(ArrayIndexOutOfBoundsException),空指针异常(NullPointerException)、类转换异常(ClassCastException);

普通异常是运行环境的变化或异常所导致的问题,是用户能够克服的问题,例如,网络断线,硬盘空间不够,发生这样的异常后,程序不应该死掉。

 

Java为系统异常和普通异常提供了不同的解决方案,编译器强制普通异常必须try..catch处理或用throws声明继续抛给上层调用方法处理,所以普通异常也称为checked异常;

而系统异常可以处理也可以不处理,所以,编译器不强制用try..catch处理或用throws声明,所以系统异常也称为unchecked异常,例如RuntimeException

 

try 代码块中包含可能发生异常的代码,catch中匹配标注的异常,如果真正发生的该种异常,执行catch代码块中的内容,finally代码块是无论是否发生异常都必须执行的。throws关键字一般房子方法上,类似一种声明,就是方法返回值的声明一样,不过没有那么强制一定要抛出异常,但是如果抛出的话必须声明,throw 关键字用来抛出异常

 

java异常机制的底层研究:

  我看得一知半解,感觉还是要会点汇编和C

http://blog.csdn.net/xucan2087/article/details/4846300

posted @ 2016-11-12 17:00  guodaxia  阅读(217)  评论(0编辑  收藏  举报