仓酷云

标题: JAVA网页设计制止在Java中利用Checked Exception [打印本页]

作者: 仓酷云    时间: 2015-1-18 11:22
标题: JAVA网页设计制止在Java中利用Checked Exception
其实产生见解的过程就是训练自己发现问题,分析问题的能力。根据以上的认识我想谈下传统的学习与通过视频独立学习的优缺点:Java的Exception分为两类,一类是RuntimeException及其子类,别的一类就是checkedException。Java请求函数对没有被catch处置失落的checkedException,必要将其写在函数的声明部分。但是,这一请求经常给程序员带来一些不用要的包袱。



为了不在函数声明中写throws部分,在Java项目内里经常能够看到以下代码用来‘吞失落’Exception:



这明显不是一个好的处置Exception举措,现实上,catch并处置一个Exception意味着让程序从产生的毛病(Exception)中恢复过去。从这类意义上说,已上的代码只大概在一些很复杂的情形下事情而不带来成绩。



关于良多Exception,常常没有去向理它并让程序从毛病中恢复出来的举措,这时候独一能做的事变大概就是在界面上显现一些提醒信息给用户。这类情形下让程序抛出碰到的Exception是更加公道的做法。但是,如许做会使得一些函数的声明急剧收缩。一个函数大概必要声明会抛出的7、8个checkedException,并且每一个挪用它的函数也必要一样的声明。



比这更糟的是,这有大概损坏类计划的open-close准绳。复杂来讲,open-close准绳是指当扩大一个模块的时分,能够不影响其现有的client。open-close准绳是经由过程承继来完成的,当承继一个类的时分,我们既扩大了这个类,也不会影响原本的client(由于对这个类没有修改)。



如今思索上面这类情形,有一个父类Base:




如今必要承继Base这个类偏重载foo这个办法,在新的完成中,foo大概抛出ExceptionB:



但是,如许写在Java内里是分歧法的,由于Java把大概会抛出的Exception看做函数特性的一部分,子类声明抛出的Exception必需是父类的子集。



能够在Base类的foo办法中到场抛出ExceptionB的声明,但是,如许就损坏了open-close准绳。并且,偶然我们没有举措往修正父类,好比当重载一个Jdk里的类的时分。



另外一个大概的做法是在Extend的foo办法中catch住ExceptionB,然后机关一个ExceptionA并抛出。这是个可行的举措但也只是一个权宜之计。



假如利用RuntimeException,这些成绩都不会存在。这申明checkedException并非一个很有用的观点,也意味着在程序计划的时分,我们应当让本人的Exception类承继RuntimeException而不是Exception。(这和JDK的倡议恰好相反,理论证实如许做代码的质量更好。)



关于那些必要处置checkedException的代码,能够使用一个ExceptionAdapter的类把checkedException包装成一个RuntimeException抛出。ExceptionAdapter来自BruceEckel的DoesJavaneedCheckedException这篇文章,在这里的ExceptionAdapter是我依据JDK1.4修正过的:




rethrow()的感化是把被包装的Exception再次抛出。


你通过从书的数量和开发周期及运行速度来证明:net和ruby要比java简单。
作者: 谁可相欹    时间: 2015-1-20 21:53
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
作者: 小妖女    时间: 2015-1-28 06:09
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者: 兰色精灵    时间: 2015-2-3 05:52
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者: 山那边是海    时间: 2015-2-5 20:46
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
作者: 因胸联盟    时间: 2015-2-6 16:26
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 若天明    时间: 2015-2-7 06:40
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者: 变相怪杰    时间: 2015-2-11 08:22
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: 第二个灵魂    时间: 2015-3-2 01:34
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 飘灵儿    时间: 2015-3-10 22:18
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者: 活着的死人    时间: 2015-3-13 03:08
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 深爱那片海    时间: 2015-3-20 10:51
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2