hapter 9: Error Handl 使用这个方法。这么作的好处就是,它能为异常先占个位子,以后你就能 真的抛出异常而不用去改动已有的代码了。而且对于其实现会真的抛出异 常的 abstract基类和 interface来说,这是相当重要的。 会在编译时进行检査并且强制得到处理的异常被称为 checked exception 捕捉任意类型的异常 要想创建一个“能处理任意类型的异常的”异常处理程序是完全可能的。 要做到这点,你就必须去捕捉异常的基类 Exception了(还有一些其它 类型的基类,但实际上只有 Exception是同编程活动相关的基类): catch(Exception e)t System.err println("Caught an exception")i 这样就能捕获所有的异常了,所以如果你想这么写的话,就应该把它放到 最后,这样它就不会抢在其它处理程序前头把异常给劫走了。 由于 Exception只是那些跟程序员有关的异常类的基类,因此你不能从 它那里得到更多的关于异常的具体信息,不过你也可以调用 Exception 的基类 Throwable的方法 String getMessage o) String getLocalizedMessage) 获取详细信息,或者是用当地语言表示的信息。 String tostring) 返回包括详细说明在内的,这个 Throwable的简短说明。如果有的 话 void printstackTrace void printstackTrace ( Printstream) void printstackTrace java.io PrintWriter) 打印 Throwable以及 Throwable的调用栈轨迹( call stack trace)。调用栈显示了“将你带到异常发生地的”方法调用的顺序。第 个版本会打印到标准错误上,第二和第三个则会打印到你选择的流里 (到第12章,你就会知道为什么要有这两种流)。 Throwable fillInStackTraceo 在 Throwable对象里面记录“栈帧( stack frame)”的当前状态。等 应用程序要重抛错误或异常的时候就要用这些信息了(过一会再作详细讲 解) 第10页共10页 www.wgqqh.com/shhgs/tij.html email:shhgs@sohu.comChapter 9: Error Handling with Exceptions www.wgqqh.com/shhgs/tij.html email:shhgs@sohu.com ✞ 10 ✟ ✠ 10 ✟ R\@nR»7 #9'èZ"\éN#Sy± ' !LèZµ´#ðË-
µ¬÷kU1~!Lè Z abstract ³ interface `a#RF; ~ !±§¨i¬Ò278èZ/" checked exception ;²Îb^\'78âÐèZèZ78%&½' ;mR¯#± ´èZ Exception
(³-^2U9 Ð#+ãg5- Exception %$ð)Ê catch(Exception e) { System.err.println("Caught an exception"); } RO ',-èZ
#,S¶·±²R+¿# 9 y#RO9 ~%U978%&*èZJ&
Âk Exception 5K2ª%&-èZ#Ʊ'b 9Kó[kèZÝìGH#=±$Sº Exception Th rowable @nÊ String getM essage( ) String getLocalizedM essage( ) GH#tjFXYøùGH String toString( ) opäå aüw#R\ Th rowable n'aü¶·- ¿ void printStackTrace( ) void printStackTrace( PrintStream ) void printStackTrace(java. io. PrintWriter) ñò Th rowable ST Th rowable º()(cal l stack trace)ºù
D±*èZ0ü@nº[&{ ^\~ñòvyg#{}³{+\ï~ñò±,-õ ({ 1 2 7#± ~LM;-Rz?õ) Th rowable fil l InStackTrace( ) Th rowable ÷`./(stack fram e)F*0½ %&;LtèZ" ;R2GH
(=^~þ» % Ù)