手机浏览器扫描二维码访问
main(Stringargs''){try{inta=args。length;system。out。println(”a
=”+a);intb=42a;procedure();}catch(arithmeticExceptione)
{System。out。println(”divby0:”+e);}}}
成员函数procedure里有自己的trycatch控制,所以main不用去处理ArrayIndexOutOfBoundsException。
8。7throw语句
throw语句用来明确地抛出一个”异常”。首先,你必须得到一个Throwable的实例的控制柄,通过参数传到catch子句,或者用new操作符来创建一个。下面是throw语句的通常形式。
throwThrowableInstance;
程序会在throw语句后立即终止,它后面的语句执行不到,然后在包含它的所有try块中从里向外寻找含有与其匹配的catch子句的try块。下面是一个含有throw语句的例子。
classThrowDemo{staticvoiddemoproc(){try{thrownewNullPointerException(”de3mo”);}catch(NullPointerExceptione){System。out。println(”caughtinsidedemoproc”);throwe;}}publicstaticvoidmain(Stringargs''){try{demoproc();}
catch(NullPointerExceptione){system。out。println(”recaught:”+e);}}}
8。8throws语句
throws用来标明一个成员函数可能抛出的各种”异常”。对大多数Exception子类来说,Java编译器会强迫你声明在一个成员函数中抛出的”异常”的类型。如果”异常”的类型是Error或RuntimeException,或它们的子类,这个规则不起作用,因为这?copy;在程序的正常部分中是不期待出现的。如果你想明确地抛出一个RuntimeException,你必须用throws语句来声明它的类型。这就重新定义了成员函数
的定义语法:typemethod…name(arg…list)throwsexception…list{}
下面是一段程序,它抛出了一个”异常”,但既没有捕捉它,也没有用throws来声明。这在编译时将不会通过。
classThrowsDemo1{staticvoidprocedure()'System。out。println(”inside
procedure”);thrownewIllegalAccessException(”demo”);}publicstatic
voidmain(Stringargs''){procedure();}}
为了让这个例子编译过去,我们需要声明成员函数procedure抛出了IllegalAccessException,并且在调用它的成员函数main里捕捉它。下面是正确的例子:
classThrowsDemo{staticvoidprocedure()throwsIllegalAccessException
{System。out。println(”insideprocedure”);thrownew
IllegalAccessException(”demo”);}publicstaticvoidmain(Stringargs'')
{try{procedure();}catch(IllegalAccessExceptione)
{System。out。println(”caught”+e);}}}
下面是输出结果:
C:》javaThrowsDemoinsideprocedurecaught
java。lang。IllegalAccessException:demo
8。9finally
当一个”异常”被抛出时,程序的执行就不再是线性的,跳过某?copy;行,甚至会由于没有与?reg;匹配的catch子句而过早地返回。有时确保一段代码不管发生什么”异常”都被执行到是必要的,关键词finally就是用来标识这样一段代码的。即使你没有catch子句,finally程序块也会在执行try程序块后的程序?reg;前执行。每个try语句都需要至少一个与?reg;相配的catch子句或finally子句。一个成员函数返回到调用它的成员函数,或者通过一个没捕捉到的”异常”,或者通过一个明确的return语句,finally子句总是恰好在成员函数返回前执行。下面是一个例子,它有几个成员函数,每个成员函数用不同的途径退出,但执行了finally子句。
classFinallyDemo{staticvoidprocA(){try
{System。out。println(”insideprocA”);thrownew
RuntimeException(”demo”);}finally{System。out。println(”procAs
finally”);}}staticvoidprocB(){try{System。out。println(”inside
鬼夜 元宝传奇 上古卷轴天际之子 游神传说之界王 产生物 众语皆悲 道君且慢 娘亲V5父皇很欠抽 要说多少次,我不是人奸! 东北谜踪 穿越之正妻诱惑 02.25完结+1番外 节妇的悠然生活 黄帝内经实用手册 魅魔模拟器 天空大陆 荒界实录 闲巫在都市 史上最拽的十个女人 侠 洪荒老祖已无敌
一朝穿越,竟然上了一个花痴女的身,留下一堆烂摊子,还等着高大上的她来收拾,江未央表示有些醉醉哒。大婚之日,被夫君各种刁难,她游刃有余,轻松化解,呵呵,还把她当成废柴花痴女,那就大错特错了!等到她反攻之日,风君璃你给我等着!娘子你累吗,为夫给你揉揉肩。娘子你饿吗,来为夫喂你吃点桂花糕。娘子,你喜欢为夫做什么闭嘴,本王妃喜欢你离远一点!...
沦落荒岛,一场惊变之后,我沦为棋子,受人奴役摆布。卧薪尝胆,觉醒武影,不羁放纵,放肆桀骜,铮铮铁骨岂能弯。金麟岂是池中物,一遇风云便化龙。进入广袤神域后,为了保护我的女人们,双拳怒战八荒,噬天剑刺六合,当臣服之人越来越多,我却发现,神域背后还隐藏着极大的秘密,竟是与我的身世相关关爱作者群553985685加更条件200钻石加一更★500推荐票加一更★一个玉佩加一更★一个皇冠加十更(分期加更)★关爱作者,从你做起,嘿嘿...
鬼魅横行的世界宗教信仰没落的年代,法师已经成为了不为人知的异类,是神棍,还是真有其事?延续林正英道长系列之降妖伏魔。...
...
他曾经以一人之力改变了整个大陆为它带去了死亡,毁灭与混乱他掌握这这个世界上最强大而令人恐惧的力量使那令人畏惧的名字传遍四方死亡不是结束,而是另外一个开始当玫瑰与剑的旗帜再次飘扬在这天空之下时所带来的...
我是一名午夜外卖员,专为鬼怪送外卖。刚外出打工的我,意外找到了一份高薪工作,就这样,我每天午夜时分出发,然而恐怖怪异的事情开始一件接一件的发生。最重要的是,我发现我家竟然守着一笔巨大的财富,那是一座鬼墓...