1>是,然后向上层传递直至被捕获.
2>throws Exception只是声名了一下,告诉调用他的人,要捕获异常,而try{}catch(){}直接就捕获了.
调用时就不 用考虑了.
3>弊端就是你分析错误的时候就不知道具体是什么异常了.
2>throws Exception只是声名了一下,告诉调用他的人,要捕获异常,而try{}catch(){}直接就捕获了.
调用时就不 用考虑了.
3>弊端就是你分析错误的时候就不知道具体是什么异常了.
解决方案 »
- 为什么我的struts1.2总是无法运行
- 大家来帮帮忙.......Access denied for user 'root'@'localhost'
- 用java做管理系统遇到问题求
- jsf自定义组件中标签类的getRendererType()方法和组件类的setRendererType()方法是干什么的?有什么联系?是怎样调用配置文件的?
- 循环问题
- 请大家帮我看一条语句,提出改良建议
- 求教-Hibernate删除问题-忘大侠指教
- 我是个struts的新手
- 请问:如何能实现,把多个文件压缩成另一个文件??也就是输入几个文件的文件名,输入出的是这几个文件的压缩包
- 关于多线程和线程调度、优先级的问题??
- 请教关于tomcat内存设置问题
- 刚刚发现了一个问题,mysql的JDBC2和3有区别
在复杂的软件中,经常会有一些特定的代码块执行时会抛出多种不同例外的方法。动态装入一个类和实例化一个对象都可能会产生几个不同的例外,包括ClassNotFoundException, InstantiationException, IllegalAccessException, 和 ClassCastException。
一个繁忙的程序员在遇到这种情况时可能简单的把方法调用包在一个只会捕获泛型例外Exception的try/catch块,而不是添加四个不同的catch块到try块后面(看下面的代码清单3)。这看起来似乎无可置否,却会产生一些无意识的副面效果。例如,如果className()是null,那么Class.forName()将会抛出一个NullPointerException例外并在这个方法中被捕获。在这种情况下,catch块将捕获此例外虽然它从没打算去捕获这样一个例外,只是因为NullPointerException是RuntimeException的一个子类,而且RuntimeException又是Exception的一个子类。所以一个普通的catch(Exception e)将会捕获所有RuntimeException的子类,包括NullPointerException, IndexOutOfBoundsException, 和ArrayStoreException。通常,一个程序员并不打算去捕获这些例外。为什么它这里说这个NullPointerException不需要被扑获呢?如果不扑获的话,会发生什么问题呢?
是的,但如果有finally语句,只直接用出异常那行跳到finally语句里执行.2。 void cleanupConnections() throws Exception{
}
和
在try{}catch(){}
中扑获异常有什么不同的地方,即使用try{}catch(){}的好处是什么?
第一种直接扔给了调用者,第二种是自己拿到可以做相应的处理,比如写文件出错,可以将文件删掉之类的.3。如果我扑获异常的时候笼统的使用一个Exception,而不是具体到什么异常,比如IOException,SQLException,这样的弊端在哪里?对异常的扑获有一个原则就是不能处理的异常不要去捕获,如果你只笼统的使用一个Exception,那么通常情况下你就不知道你拿到的是什么异常,也谈不上处理了.