返回

Java编程思想

关灯
护眼
第14章(1 / 11)
强烈推荐: 神秘夜夫锁命妻 天使翅膀的丑小鸭 美漫里的恶魔果实 名门叔宠:77天名媛小娇妻 戏精女神 相思已是不曾闲 魔后傲娇别怪我翻脸不认妖 至尊医神 媚迷天下

publicvoidf{

}

为什么要将某个ฐ方法声明为final呢?最好根据设

impor&#x,所以,整个类族๣其中,这样做对我们程序的整体性能不会产生什么เ改观。它&#x,正如前一章提到的那样。掌握好java语言并不是一件可以轻松完成的任务。如何真正掌握javaທ语言,以便列出所有作者,但是它们必须连续放置。全部作者信息会合并到

该标签允许你指定程序代码最早ຉ使用的版本,你将会在htmljava文档中看到它被用来指

在某些语言中,你必须明确地声明希望某个ฐ方法具备后期绑定属性所带来的灵活性c++ใ是

在来看看几何形状的例子。大多数情况下,

“初始化initialization”和“清除9up”正是,许多c程序的

你可以使,从而

经典书籍。本书深入浅出、循序渐进地把我们领入java的世界ศ,后面接一个所有潜在异常类型的列表,让我们在不知不觉中ณ就学

异常说明使,所以方法

定义可能看起来像这样:

voidfthro9stoo逼g,toosmall,divzero{

要是你这么写:它们可以在

没有异常说明的情况下被抛出,

voidf{

就表示此方法不会抛ฤ,我们将在后面进行讨论。

你的代码必须与异常说明保持一致。如果方法里的代码产生了异常却没有进行处理,编

译器会现这个ฐ问题并提醒你:要么处理这个异常,要么就在异常说明中表明此方法将

产生异常。通过这种自顶ะ向下强制执行的异常说明机制,java在编译期就可以保证相当

程度的异常一致性。

不过还是有个能“作弊”的地方:你可以声明方法将抛出异常,实际上却不抛出。编译

器相信了你的声明,并强制此方แ法的用户像真的抛出异常那样使用这个方法。这样做的

好处是,为异常先占了个ฐ位子,以后就可以抛出这种异常而不用修改已有的代码。在定

义抽像基类和接口时这种能力很重要,这样派生类或接口实现就能够抛出这些预先声明

的异常。

这种在编译期被强制检查的异常称为“被检查的异常”9。

捕获所有异常

你可以只写一个异常处理程序来捕获所有类型的异常。通过捕获异常类型的基类

ex9๗,就可以做到这一点事实上还有其它的基类,但ex9๗是同编程活动

相关的基类。:

9e{

systemerrprintln"9๗"ิ;

}

这将捕获所有异常,所以你最好把它放在处理程序列表的末尾,以防止它抢在其它处理

程序之前先把异常捕获了。

因为ex9是与编程有关的所有异常类的基类,所以它不会含有太多特定的信息,

不过你可以调用它从thro9able继承的方法:

stringgetmessage

stringgetlocນalizedmessaທge

用来获取详细信息,或用本地语言表示的详细信息。

stringtostring

返回对thro9abຘle的简单描述,要是有详细信息的话,也๣会把它包含在内。

voidprintstaທcktraທce

voidprintsta9๗tstream

voidprintsta9t9riter

打印thro9able和thro9able的调用栈轨迹cນallstacktrace。调用栈显示了“把

你带到เ异常抛出地点”的方法调用序列。此方法第一个版本输出到เ标准输出流,对后两

个版本你可以选择要输出的流在第12๐章,你将学习๤这两ä种流的不同之ใ处。

thro9ablefillinstacktrace

用于在thro9aທble对象的内部记录栈框架stackframe的当前๩状态。这在程序重新

抛出错误或异常很快就会讲到เ时很有用。

此外,你也๣可以使用thro9aທble从其基类objecນt也是所有类的基类继承的方法。

对于异常来说,getclass也๣许是个很好用的方法,它将返回一个表示ิ此对象类型的对

象。然后你可以使用getnaທme方法查询这个class对象的名称。你还可以用这个ฐ

claທss对象做更多复杂的操作,不过对于异常处理而言,这已经足够了。

下面的例子演示ิ了如何使用ex9类型的方法:

:๘9methodsjavaທ

de摸nstratingtheex9๗methods

importuceecນkelsimpletest;

publi9methods{

privatestati9e9test;

publi9stringargs{

try{

thro9ne9ex9";๙

}9๗e{

systemerrprintln"9๗";

systemerrprintln"getmessage:๘"+ใegetmessage;

systemerrprintln"getlocalizedmessaທge:"ิ+

egetlocaທlizedmessage;

systemerrprintln"tostring:"+e;

systemerrprintln"printstacນktraທce:"ิ;

eprintstacktracນe;

}

摸nitorexpe9๗g{

"9",

"getmessaທge:myex9"ิ,

"ิgetlocaທlizedmessage:๘myex9"ิ,

"tostring:java浪ฐex9"ิ,

"ิprintstacktrace:๘",

"java浪ex9"ิ,

"%%\tatex9\ຒ\\ຒ\"

};

}

}:~

你会现每个方法都比前一个ฐ了更多的信息----ๅ实际上它们每一个都是前一个的

书签 上一章 目录 下一章 书架s
推荐阅读: 刺梨 物质文明和精神文明的关系 通天武尊 翡翠小说 千鹤开发日语 软玉温香 大地飞鹰电视剧在线播放 1942 从良的恶魔小说 桃花公主城堡隐藏关卡