黑马程序员技术交流社区

标题: error异常与exception异常有没有确定说那个是编译时的,那个是运行时的??? [打印本页]

作者: 不冬眠的蚂蚁    时间: 2014-1-15 10:37
标题: error异常与exception异常有没有确定说那个是编译时的,那个是运行时的???
视频只提到exception的一句:运行时出现的一些情况,可通过try catch finally进行处理
那是说exception是运行时的异常吗?
那error是什么时候的异常呢????

作者: mrwise1991    时间: 2014-1-15 11:04
异常(Exception)是运行时的错误,所以你所问的异常实际上就是Exception,运行的时候发生的,它也是运行时的错误
作者: 黄晓鑫    时间: 2014-1-15 12:40
error一出现就得修改程序不能处理的错误
作者: quan23355    时间: 2014-1-15 16:02
下面是我的总结,希望对你有帮助
Java中通过面向对象的思想用类的形式把程序所产生的问题进行描述和封装对象,这个类是Throwable类,用来描述不正常情况的类,称为异常类,该类和继承该类的子类都具备可抛性。继承Throwable的类有error和Exception。
Error是指由jvm抛出的严重性的错误,一般不可处理,比如内存泄漏,栈溢出。出现这种情况直接修改程序。Exception是指可处理的。Exception异常又分为编译时被检测异常和运行时异常。编译时被检测异常是指在编译之前就存在的一种异常,只要是Exception和继承Exception的子类(除了RuntimeException体系以外),这种异常一旦出现,就要求要给出对应的处理方式,比如try catch捕获和针对性处理,或对其进行抛出,抛给别人去处理,如果没有给出对应的处理方式编译就会不通过。其次是RuntimeException运行时异常,运行时异常是指程序在运行的时候出现的异常,只要是RuntimeException和继承RuntimeException的子类都是,这种异常本身程序不存在错误,也不用给出具体的处理方式,往往是在程序运行的时候由于调用者的原因传入一些非法的值而导致的错误,这种错误强制终止程序让调用者去修改程序,比如数组角标越界异常,这种错误就是在程序运行的时候传入超出数组下标的值而导致的异常,再比如空指针异常也一样,是指传入的值是空的。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2