Java编程中throw和throws子句的使用方法_第1页
Java编程中throw和throws子句的使用方法_第2页
Java编程中throw和throws子句的使用方法_第3页
Java编程中throw和throws子句的使用方法_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——Java编程中throw和throws子句的使用方法Java编程中throw和throws子句的使用方法

Javathrow:奇怪的抛出

程序可以用throw语句抛出明确的奇怪。Throw语句的通常形式如下:

throwThrowableInstance;

这里,ThrowableInstance确定是Throwable类类型或Throwable子类类型的一个对象。简朴类型,例如int或char,以及非Throwable类,例如String或Object,不能用作奇怪。有两种可以获得Throwable对象的方法:在catch子句中使用参数或者用new操作符创造。

程序执行在throw语句之后立刻中断;后面的任何语句不被执行。最紧紧包围的try块用来检查它是否含有一个与奇怪类型匹配的catch语句。假设察觉了匹配的块,操纵转向该语句;假设没有察觉,次包围的try块来检查,以此类推。假设没有察觉匹配的catch块,默认奇怪处理程序中断程序的执行并且打印堆栈轨迹。

下面是一个创造并抛出奇怪的`例子程序,与奇怪匹配的处理程序再把它抛出给外层的处理程序。

//Demonstratethrow.classThrowDemostaticvoiddemoproctrythrownewNullPointerExceptiondemo;catchNullPointerExceptioneSystem.out.printlnCaughtinsidedemoproc.;throwe;//rethrowtheexceptionpublicstaticvoidmainStringargs[]trydemoproc;catchNullPointerExceptioneSystem.out.printlnRecaught:+e;

该程序有两个机遇处理一致的错误。首先,main()设立了一个奇怪关系然后调用demoproc。demoproc方法然后设立了另一个奇怪处理关系并且立刻抛出一个新的NullPointerException实例,NullPointerException在下一行被捕获。奇怪于是被再次抛出。下面是输出结果:

Caughtinsidedemoproc.Recaught:java.lang.NullPointerException:demo

该程序还阐述了怎样创造Java的标准奇怪对象,更加留神下面这一行:

thrownewNullPointerExceptiondemo;

这里,new用来构造一个NullPointerException实例。全体的Java内置的运行时奇怪有两个构造函数:一个没有参数,一个带有一个字符串参数。当用到其次种形式时,参数指定描述奇怪的字符串。假设对象用作print或println的参数时,该字符串被显示。这同样可以通过调用getMessage来实现,getMessage是由Throwable定义的。

Javathrows子句

假设一个方法可以导致一个奇怪但不处理它,它务必指定这种行为以使方法的调用者可以养护它们自己而不发生奇怪。做到这点你可以在方法声明中包含一个throws子句。一个throws子句列举了一个方法可能抛出的全体奇怪类型。这对于除Error或RuntimeException及它们子类以外类型的全体奇怪是必要的。一个方法可以抛出的全体其他类型的奇怪务必在throws子句中声明。假设不这样做,将会导致编译错误。

下面是包含一个throws子句的方法声明的通用形式:

typemethod-nameparameter-listthrowsexception-list//bodyofmethod

这里,exception-list是该方法可以抛出的以有逗号分割的奇怪列表。

下面是一个不正确的例子。该例试图抛出一个它不能捕获的奇怪。由于程序没有指定一个throws子句来声明这一事实,程序将不会编译。

//Thisprogramcontainsanerrorandwillnotcompile.classThrowsDemostaticvoidthrowOneSystem.out.printlnInsidethrowOne.;thrownewIllegalAccessExceptiondemo;publicstaticvoidmainStringargs[]throwOne;

为编译该程序,需要变更两个地方。第一,需要声明throwOne引发IllegalAccessException奇怪。其次,main务必定义一个try/catch语句来捕获该奇怪。正确的例子如下:

//Thisisnowcorrect.classThrowsDemostaticvoidthrowOnethrowsIllegalAccessExceptionSystem.out.printlnInsidethrowOne.;thrownewIllegalAccessExceptiondemo;publicstaticvoidmainStringargs[]trythrowOne;catchIllegalAccessEx

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论