六. 异常处理7.throw:异常的抛出
throw ThrowableInstance;
这里,ThrowableInstance一定是Throwable类类型或Throwable子类类型的一个对象。简单类型,例如int或char,以及非Throwable类,例如String或Object,不能用作异常。有两种可以获得Throwable对象的方法:在catch子句中使用参数或者用new操作符创建。
程序执行在throw语句之后立即停止;后面的任何语句不被执行。最紧紧包围的try块用来检查它是否含有一个与异常类型匹配的catch语句。如果发现了匹配的块,控制转向该语句;如果没有发现,次包围的try块来检查,以此类推。如果没有发现匹配的catch块,默认异常处理程序中断程序的执行并且打印堆栈轨迹。
下面是一个创建并抛出异常的例子程序,与异常匹配的处理程序再把它抛出给外层的处理程序。
// Demonstrate throw.
class ThrowDemo {
static void demoproc() {
try {
throw new NullPointerException("demo");
} catch(NullPointerException e) {
System.out.println("Caught inside demoproc.");
throw e; // rethrow the exception
}
}
public static void main(String args[]) {
try {
demoproc();
} catch(NullPointerException e) {
System.out.println("Recaught: " + e);
}
}
}
该程序有两个机会处理相同的错误。首先,main()设立了一个异常关系然后调用demoproc( )。 demoproc( )方法然后设立了另一个异常处理关系并且立即抛出一个新的NullPointerException实例,NullPointerException在下一行被捕获。异常于是被再次抛出。下面是输出结果:
Caught inside demoproc.
Recaught: java.lang.NullPointerException: demo http://www.xyseo.net/
该程序还阐述了怎样创建Java的标准异常对象,特别注意下面这一行:
throw new NullPointerException("demo");
这里,new用来构造一个NullPointerException实例。所有的Java内置的运行时异常有两个构造函数:一个没有参数,一个带有一个字符串参数。当用到第二种形式时,参数指定描述异常的字符串。如果对象用作 print( )或println( )的参数时,该字符串被显示。这同样可以通过调用getMessage( )来实现,getMessage( )是由Throwable定义的。
最新文章
- Unity -- EventSystem完全掌握
- MVC中的时间js格式化
- Android笔记:实现点击事件
- Linux中编译、安装nginx
- Intent传输包含对象的List集合
- 转载 radio值获取
- 躲避球游戏ios源码
- XMPP即时通讯(代码实现)
- 执行此安装程序之前,必须安装 32 位 Windows 映像处理组件(WIC)解决的方法
- MFC利用ADO建立access数据源 ---包括访问带access密码与不带access密码两种方式)
- --@angularJS--浅谈class与Ng-Class的应用
- Django REST framework使用ViewSets的自定义路由实现过程
- JavaWeb学习笔记——jquery中的dom操作
- J2EE十三个规范小结
- HDU Today(最短路)
- mysql基础学习
- 在ASP.NET Core 2.2 中创建 Web API并结合Swagger
- 理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
- 【leetcode】455. Assign Cookies
- javascript打印1-100内的质数
热门文章
- 孤荷凌寒自学python第三十二天python的代码块中的异常的捕获
- 六、OCP 开闭原则
- B - Help Jimmy
- 思梦PHP-阿里大鱼手机验证码
- CocoaPods 安装与使用
- [GDOI2016] 疯狂动物园 [树链剖分+可持久化线段树]
- Spring Boot Executable jar/war 原理
- Postfix+Sasl+Courier-authlib+Dovecot+MySQL+extmail 邮件系统部署
- linux下有的目录有可执行权限
- 搭建自己的YUM源HTTP服务器