黑马程序员技术交流社区

标题: 关于 异常的一个小疑惑 [打印本页]

作者: 黄佳    时间: 2012-10-18 16:21
标题: 关于 异常的一个小疑惑
  

                  大家都知道  异常是在运行时出现的     

                 但是 Exception 里面的这个 RuntimeException  怎么理解

作者: 廖智    时间: 2012-10-18 16:25
本帖最后由 廖智 于 2012-10-18 16:31 编辑

异常不只是运行时发生的Exception,还有编译时发生的RuntimeException。
两种异常:
                                1、编译时异常Exception:编译时被编译器检测的异常。
                                        通常都需要编写针对性的处理代码进行处理。
                                2、运行时异常RuntimeException:编译时不被检测的异常,这种异常出现,编译时期是不在检查之列的。
                                        这种异常不需要在函数上声明,即使声明了,调用者也不用一定给出预先处理方式,因为它不会导致编译失败。
                                       这种异常也可以用try{}catch(){}处理,但是 通常,不需要编写try{}进行处理,因为这种异常发生是为了让程序停掉。
                                        一旦发生,就让程序停掉。然后对代码进行修正。
                        
作者: 秦松    时间: 2012-10-18 16:31
直接翻译过来就行了  运行时异常  这个在编译时可以通过的
作者: 李贺晓    时间: 2012-10-18 16:42
异常有两种:编译时被检测异常exception,该异常在编译时没有进行处理,编译失败,该异常被标识,标志着可以被处理;
运行时异常(编译时不检测)RuntimeException,在编译时,不进行处理,该异常的发生,建议不处理,让程序停止,对代码进行修正
作者: 丁旭    时间: 2012-10-18 16:56
RuntimeException是运行时异常。
在编译时异常不被检测,它不会导致编译失败。通常不需要编写try、catch进行处理,因为这种异常发生就是为了让程序停掉。要求对代码进行修正。
作者: 王自强    时间: 2012-10-18 17:16
@@特殊异常类RuntimeException:
RuntimeException(NullPointerException,<Array,String>IndexOutOfBoundsException,ArithmeticException)
1,在函数内抛出RuntimeException对象,函数上可以不用声明,编译通过!
2,在函数上声明RuntimeException类,调用者可以不用处理,编译通过!
3,调用含RuntimeException异常的函数,调用者可以不用处理。编译通过!
一般情况下,函数内可能出现异常,并且内部没有进行try处理,那么函数上需要声明,否则编译失败。
但RuntimeException类及其子类 特殊!
特殊的原因:当该异常发生时,希望程序停止。因为在运行时,出现了无法继续运算的情况。希望程序停止后,对代码进行修正!
自定义异常:如果该异常的发生,无法再继续进行运算,就让自定义异常继承RuntimeException
异常分两种:
1,编译时不被检测的异常(RuntimeException及其子类)。运行时异常。异常发生时,程序停掉。
2,编译时被检测的异常。javac 的时候。编译时异常。异常发生,可以被处理。
异常在子父类覆盖中的提体现:
1,子类覆盖父类方法时,如果父类的方法抛出异常。那么子类的覆盖函数只能抛出父类的异常或该异常的子类。(对于新的异常,子类方法只能内部try catch处理)
2,父类方法抛出多个异常,子类在覆盖该方法时,只能抛出父类异常的子集。
3,父类或接口中方法没有异常抛出,子类在覆盖方法时,也不能抛出异常。
        如果子类覆盖的方法发生了异常,就必须进行try处理,绝对不能抛出。




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