仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 715|回复: 9
打印 上一主题 下一主题

[学习教程] JAVA网页设计非常处置好坏不雅(转载)

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:23:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
有了这样一个呼声:让java代替C语言成为基本语言。这些足以说明java简单易学的这个优点。其次,java的功能强大,前面我也提到了,EJB3.0的推出使java成为了大型项目的首选。非常处置Java编程中的非常处置是一个很罕见的话题了,几近任何一门先容性的Java课程城市提到非常处置。不外,我以为良多人实在并没有真正把握准确处置非常情形的办法和战略,最多也就不外懂得个也许,晓得点观点。本文就对三种分歧水平和质量的Java非常处置举行了会商,所论述的处置非常的体例按伎俩的高低分为:好,欠好和卑劣三种。同时向你供应了一些办理这些成绩的技能。

非常处置供应了处置程序毛病的一致机制。现实上,Java言语经由过程向挪用者提出非常告诫的体例而明显地提拔了软件开辟中的非常处置才能。这类体例把Java言语中的“办法(method)”举行了扩大和加强,使之包含了本身的毛病前提。上面就让我们看一个例子,这个例子申明了这类情形。
以下是FileInputStream机关器之一的原型:
publicFileInputStream(Stringname)throwsFileNotFoundException
这个原型和C大概C++言语中的同类本相都纷歧样,Java的办法和机关器必需声明他们在被挪用时大概“扔出”的非常,接纳的关头字就是“throws”。这类在办法原型中呈现的非常提醒增添了编程的牢靠性。不言而喻,这类体例是向办法的挪用者提醒意了大概呈现的非常前提,如许挪用者就能够对这些非常作出得当的响应处置。
以下代码表示我们是怎样捕捉而且处置FileNotFoundException这一非常的:
try
{
FileInputStreamfis=newFileInputStream(args[0]);
//othercodehere...
}catch(FileNotFoundExceptionfnfe)
{
System.out.println("File:"+args[0]+"notfound.Aborting.");
System.exit(1);
}
Java非常处置另有其他一些优异的特征,这就是可反省非常、用户界说非常和在JDK1.4中推出的新型Java纪录API(JavaLoggingAPI)。
java.lang.Exception的一切子类都属于可反省非常。可反省非常(checkedexception)是扔出该非常的办法所必需提醒的非常,这类非常必需被捕捉大概向挪用者提醒。
用户界说非常(User-definedexceptions)是定制的非常类,这类非常类扩大了java.lang.Exception类。优秀的Java程序划定定制非常封装、呈报和处置他们本人独占的情形。最新的Java纪录API(loggingAPI)则能够会合纪录非常。
欠好
Java非常处置欠好的一面包含两种情形:滥用非反省非常(uncheckedexceptions)和滥用catchall机关器等。这两种体例都使得成绩变得庞大起来。
有一品种其余非常属于RuntimeException的子类,这类非常不会遭到编译器的反省。好比,NullPointerException和ArrayStoreException就是这类范例非常的实例。程序员能够对RuntimeException举行子类化以躲避反省非常的限定,从而便于发生这些非常的办法为其挪用者所利用。专业的开辟团队应该只同意在很少的情形下才能够如许做。第2种非常处置的成规是catchall机关器。所谓的“catchall机关器”就是一种非常捕捉代码模块,它能够处置一切扔给它的大概非常。
以下是catchall处置器的实例:
try
{
//codeherewithcheckedexceptions
}catch(Throwablet)
{
t.printStackTrace();
}
我得供认,我本人在编写一样平常程序的时分就已经用过这类手艺;可是,在编写关头程序的时分这类范例的机关器必定要制止利用,除非他们被受权能够和中心毛病处置器团结利用才能够如许做。除此以外,catchall机关器不外只是一种经由过程制止毛病处置而加速编程进度的机制。
非常处置的一个不敷的地方是难以接纳优秀的毛病处置战略。从低容内存形态恢复、写进毛病和算法毛病等非常情形都不是容易能失掉办理的。你能够实验一下轮回、渣滓搜集和提示用户等经常使用手艺来对付以上的场合排场。
卑劣
和很多Java特征及其API相似,Java的非常处置机制也有“霸王硬上弓”类的幽默毛病。例如说,为了扔出某个非常居然坚决果断地用“new”关头词为其分派内存就是如许的例子。我本人不晓得有几次就由于犯了这类毛病而在严厉的编译器眼前频频受阻。在这类情形下,我们实在都是在奉养言语而不是让言语为我们所用。
在我编写的JavaPitfalls一书中切磋了几个非常处置方面的缺点,好比处置OutOfMemoryErrors就是其一。这一处置历程是:利用finally模块封闭文件,剖析非常以失掉呈现成绩的办法和代码行。在这一历程以内最年夜的缺点是必要捕捉OutOfMemoryError,而这一非常却并非可反省非常!想一想看,内存耗尽是相称罕见的情形。任何与内存利用形态严密相干的程序都应该捕捉和处置这一毛病。
最初,让我们思索两个尚不属于Java非常处置机制的特征。第一,今朝的情形是,在你乐成地处置了非常以后你没有举措回到你方才分开的中央。而C言语下的setjmp()和longjmp()函数则能够完成这一特征,Java理应有这两个函数的对应版本,而我们也应当能够用“resume”关头词完成它。
第二个没有完成的特征是全局非常处置器,对照物就是C++言语中的set_new_handler()。例如说,在编程的时分,即使OutOfMemoryError非常比java.lang.Error的子类更罕见,但我们也能够针对OutOfMemoryError非常而接纳全局处置器,如许的效果会比对其接纳一般的可反省非常要好很多。假如你以为对这些特征十分在乎,那末你能够在JavaDeveloperConnection那边提出本人的倡议:在Java平台内增添这些特征吧!
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。
蒙在股里 该用户已被删除
沙发
发表于 2015-1-18 15:26:57 | 只看该作者
是一种为Internet发展的计算机语言
深爱那片海 该用户已被删除
板凳
发表于 2015-1-22 07:26:27 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
不帅 该用户已被删除
地板
发表于 2015-1-30 23:44:47 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
变相怪杰 该用户已被删除
5#
发表于 2015-2-5 00:32:40 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
灵魂腐蚀 该用户已被删除
6#
发表于 2015-2-7 10:04:13 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
飘灵儿 该用户已被删除
7#
发表于 2015-2-21 15:49:45 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
小魔女 该用户已被删除
8#
发表于 2015-3-6 18:55:28 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
若相依 该用户已被删除
9#
发表于 2015-3-13 05:44:20 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
柔情似水 该用户已被删除
10#
发表于 2015-3-20 13:52:01 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 00:11

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表