java 自我知识总结(二十)异常

来源:互联网 发布:传奇千里传音数据 编辑:程序博客网 时间:2024/06/15 15:39
1) 运行时异常与一般异常有何异同
异常表示程序运行过程中可能出现的非正常状态,
运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。
java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。


2) error和exception有什么区别
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情
况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况


3)Java中的异常处理机制的简单原理和应用
异常是指java程序运行时(非编译)所发生的非正常情况或错误,与现实生活中的事件很相似,
现实生活中的事件可以包含事件发生的时间、地点、人物、情节等信息,可以用一个对象来表示,
Java使用面向对象的方式来处理异常,它把程序中发生的每个异常也都分别封装到一个对象来表示的,
该对象中包含有异常的信息。
Java对异常进行了分类,不同类型的异常分别用不同的Java类表示,
所有异常的根类为java.lang.Throwable,Throwable下面又派生了两个子类:Error和Exception,
Error 表示应用程序本身无法克服和恢复的一种严重问题,程序只有死的份了,
例如,说内存溢出和线程死锁等系统问题。Exception表示程序还能够克服和恢复的问题,
其中又分为系统异常和普通异常,系统异常是软件本身缺陷所导致的问题,也就是软件开发人员考虑不周所导致的
问题,
软件使用者无法克服和恢复这种问题,但在这种问题下还可以让软件系统继续运行或者让软件死掉,
例如,数组脚本越界(ArrayIndexOutOfBoundsException),空指针异常(NullPointerException)、
类转换异常(ClassCastException);普通异常是运行环境的变化或异常所导致的问题,是用户能够克服的问题,
例如,网络断线,硬盘空间不够,发生这样的异常后,程序不应该死掉。
java为系统异常和普通异常提供了不同的解决方案,编译器强制普通异常必须try..catch处理或用throws声明继
续抛给上层调用方法处理,
所以普通异常也称为checked异常,而系统异常可以处理也可以不处理,所以
,编译器不强制用try..catch处理或用throws声明,所以系统异常也称为unchecked异常。
提示答题者:就按照三个级别去思考:虚拟机必须宕机的错误,程序可以死掉也可以不死掉的错误,程序不应该死
掉的错误;


4) 请写出你最常见到的5个runtime exception
NullPointerException、 //空针针
ArrayIndexOutOfBoundsException、 //数组脚标越界
ClassCastException //类转换异常
ClassCastException //类转换异常
ArithmeticException //算术异常
IllegalArgumentException //错误的参数异常
ArrayStoreException //将错误的对象存诸到一个数组的时候


5) JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出
异常吗?
可以,一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,
这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。
用try来指定一块预防所有“异常”的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的“异
常”的类型。
throw语句用来明确地抛出一个“异常”。throws用来标明一个成员函数可能抛出的各种“异常”。
Finally为确保一段代码不管发生什么“异常”都被执行一段代码。
try块中可以抛出异常吗 //可以
原创粉丝点击