A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.对Exception的理解:
1.在该语句的后边通过throw new Exception()标示,throw是异常类特有的程序跳转关键字,throw用在函数的内部,new Exception()是在跳转时传递的异常对象(异常类中封装了各种异常对象,其各显示功能也不同)。
2.当函数内出现了异常的标示,这时就必须在函数上也进行标示,标示的方法是在函数的参数列表后边通过throws Exception进行标示。
3.当程序中包含了标示安全隐患的异常抛出语句后,程序就不再像以前那种编程不管它有没有安全隐患,都可以被编译被执行的程序了。也就是说你标示出了存在安全隐患的函数或语句后,你标示的目的就更明确了。那目的是什么,就是既然你把它标示出来了,你只是知道有安全隐患是没有任何价值的,你需要处理它,需要为安全隐患写预案,当出现除数为0时,程序应该怎么这么办,当数组的下标越界后,程序应该怎么这么做。
也就是强制处理。这时的程序在你不写预案的情况下,会告诉你:程序抛出异常,需要通过throws或try的方式处理才能够编译通过。

总结就是:假如你不理它,还是以前的那样像一条船有一个小洞,不去管它船也不会沉。你是可以出海的(编译通过的)。假如家人很关心打渔人,提醒了他(标示了),你就要必须不违背家人的意愿处理它,否则家人是不让你出海(通不过编译)(RuntimeException除外)。
4.标示后(抛出异常后),想通过编译的两种方法:1.异常处理不了或不想处理,就在主函数上也抛出,这里会把异常抛出给虚拟机的默认处理,就可以通过编译了。2.通过catch捕获异常,也就是你写了预案。就可以通过写的预案处理异常,可以通过编译了。
2.对RuntimeException的理解
如果在函数内抛出该异常,函数上可以不用声明,编译一样可以通过。如果在函数上声明了该异常,调用者可以不处理也可以编译通过。之所以不用在函数上声明该异常,异常发生时,希望程序停止,因为在运行时出现了无法继续运算的情况,希望停止修正。Runtime抛出的是不能解决的问题,需要修改代码,而Exception是可以处理的问题,就去写预案,比如:人造卫星的对接,在对接过程中可能会出现多种外界因素干扰,当有小行星撞击怎么办,你可以躲,当太阳能电池没有存满电可以等。但在对接时,你的对接设备和另一个卫星的对接设备不兼容,这个是被Runtime标示为解决不了的问题,那还是让卫星返回地球,重新设计对接设备吧。这就是Runtime类是在编译时不用检测的,你也不用写预案,因为检查到也处理不了,就让对接任务停止了(程序停止)。是自身出了问题,需要程序员对其内部程序进行修改满足运行条件。Exception则是在编译时检测,就是在制造卫星时就要考虑好的问题。写好预案,在对接时便可以顺利完成任务。

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马