hapter 9: Error Handl 来捕获这个异常。这就被称为“try区块(tyb/ock)”,因为你在这里 “try”各种方法调用。try区块是跟在try关键词后面的程序块。 // Code that might generate exceptions 如果你想在不支持异常处理的编程语言里仔细地检査错误,那么每次调用 方法的时候,你都得在调用代码的外围放上测试错误条件的代码,即便是 在重复调用同一个方法的时候也得这么做。使用异常处理的时候,你把所 有的东西放进try区块,然后在一个地方捕获所有的异常。这就是说,完 成任务的代码和处理错误的代码不会再搅在一起了,因此代码变得更易读 易写了。 异常处理程序 当然,抛出来的异常必须要在什么地方得到处理。这个“地方”就是“异 常处理程序( exception handler)”。此外,你想捉一个异常就要准备 段异常处理程序。异常处理程序会直接跟在try区块后面,用 catch关 键词表示 / Code that might generate 1 catch(Typel idl) t // Handle exceptions of Typel 1 catch(Type2 id2) i // Handle exceptions of Type 2 1 catch(Type3 id3) t Handle exceptions of Type 3 / etc 每条 catch子句(异常处理程序)都像一个微型的,并且有一个且仅有一个 特定类型的参数的方法。异常处理程序可以像使用方法的参数那样使用这 些标识符(id1,id2等等)。有时,由于异常的类型已经给出了足够的信 息,因此你根本就用不到这些标识符,但是它还必须搁在那里。 异常处理程序必须直接跟在try区块后面。如果程序抛出了异常,异常处 理机制就会进来寻找其参数与异常类型相匹配的那些异常处理程序中的第 个。然后进入那条 catch子句,于是它就认为异常已经得到处理了 旦 catch子句结束,寻找异常处理程序的任务就会停下。相匹配的 catch 子句会得到执行;这点不像 switch语句,它得在每个case后面加一 个 break,否则后面指令也会被执行 第4页共4页 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 ✞ 4 ✟ ✠ 4 ✟ `R\èZR /"try B«(try block)#ƱR try
?@nºtry B«ª try õy%&« try { // Code that might generate exceptions } ¶·±²¬èZ78 %XY® §¨#K¸¹º @n"#±.º ¯gP,©ª #4° iº^\@n"$RmèZ78"#±, - ± try B«#xy^\@,-èZR a#½ Ͳ ³78 ~þ´^µ
#Æ ¶ó·Á ·+
Fx#L`èZ;@78R\@ è Z78%&(exception handler)#±²^\èZ ;y¸^ ¨èZ78%&èZ78%&~Ç|ª try B«y# catch õøùÊ try { // Code that might generate exceptions } catch(Type1 id1) { // Handle exceptions of Type1 } catch(Type2 id2) { // Handle exceptions of Type2 } catch(Type3 id3) { // Handle exceptions of Type3 } // etc... ¸© catch N¹ (èZ78%&).ô^\ºÐ#i¬-^\¬»-^\ qeÐQ@nèZ78%&Sô@nQKOR 2v¼(id1 id2 ½½)-#ÂkèZÐËÌJ
FGG H#Ʊ R2v¼#+9³¾K èZ78%&Ç|ª try B«y¶·%&L
èZ#èZ7 82 ~±`¿eUQèZÐÀvK2èZ78%&!{ ^\xy±K© catch N¹#k9 èZËÌ78
^ Á catch N¹ÂÃ#¿eèZ78%&² ~Àv catch N¹~ R¯ô switch X¹#9¸\ case yÄ^ \ break#ïyÅ$~/