try {
emf = Persistence.createEntityManagerFactory(Constants.getProperty("persistenceUnit","synch"));
em = emf.createEntityManager();
emForReverse = emf.createEntityManager();
emForHis = emf.createEntityManager();
if (em == null || emForReverse == null || emForHis == null){
//logger.info("不能获得实体管理器,无法初始化数据库模块!");
throw new Exception("获得实体管理器为空!");
}
} catch (Exception e) {
// TODO Auto-generated catch block
//e.printStackTrace();
throw new Exception("获取数据库功能模块失败!" + e);
}finally{
emf.close(); /////问题在于这里可能抛出异常,导致上面我故意抛出的异常不被看到。
}
这是在一个servlet的init函数里面调用的代码,如果在finally模块里面不抓异常,则因为finally代码块是在函数返回之前执行,finally里面可能发生的空指针异常会先抛出,而我需要看到的业务逻辑方面的异常却被屏蔽。造成极大困惑!
分享到:
相关推荐
try-catch-finally捕获异常try-catch-finally捕获异常
使用try-catch-finally处理异常
异常+异常处理+try-catch-finally+教程 - 本资源是一个异常处理的教程,教你如何用Java的try-catch-finally语句处理异常,包括抛出和捕获异常,自定义异常,多个异常,finally块等。
java try…catch…finally捕获异常的实例 java try…catch…finally捕获异常的实例
1.需要完成的任务 使用UserDaoImp1类和User...(2)为了判断在finally块输出是否抛出异常,可以设置一个变量,在catch块里修改这个变量 实践四:使用log4j 需求说明 (1)使用log4j输出日志信息 (2)查看输出日志信息
finally块3---马克-to-win java视频的详细的描述与介绍
finally块1---马克-to-win java视频的详细的介绍与描述
finally块2---马克-to-win java视频的详细的描述与介绍
C#异常处理总结及简单实例 一、异常处理的理解? 异常处理是指程序在运行过程中,发生...3、finally:finally 块用于执行给定的语句,不管异常是否被抛出都会执行。 例如如果你打开一个文件,不管是否出现异常文件都
finally语句块与return的执行关系
- 不论try块中的代码是否抛出异常,finally块内的代码都会被执行。这在资源清理场景(如关闭文件流)中尤其重要,确保资源无论在何种情况下都能得到正确释放。 3. **自定义异常类**: - Java允许开发者扩展`java....
压缩包里有本人录制的一个小视屏,不会的亲们,可以看下哦~~~ 笨人要期末考了呢,录些小视屏供自己复习所用,也是为了资源共享~O(∩_∩)O~
Java finally语句到底是在return之前还是之后执行?Java finally执行深度剖析,具体看这篇博文:http://blog.csdn.net/lanxuezaipiao/article/details/16922895,这是里面相关的源码,欢迎大家下载使用。
Try块里面存放的是有可能发生异常的代码,通常和catch块一起使用,catch块用于处理try块中抛出的异常,finally块不是必须的,通常将释放资源(例如IO流的close方法)的代码放到finally块里面 注意:finally和Final还有...
try块包含可能会抛出异常的代码,catch块包含用于处理特定类型异常的代码,finally块包含无论是否发生异常都需要执行的代码。 示例: ```java try { // 尝试执行的代码,可能会抛出异常 int result = 10 / 0; ...
2.3 try-except-else-finally 语句 2.4 小结 三、异常抛出 (Exception raising) 四、异常自定义 (Exception customizing) 五、预定义的清理行为 (with 语句) 六、断言 (Asserting) 七、小结 (Summary) 一、绪论 ...
在这里我们必须要明白无论会不会出现异常,finally代码块里面的代码都是必须执行的,finally块不执行的唯一情况是:在异常处理代码中执行System.exit(1),将退出java虚拟机! 最后我写点我们在学习和工作的时候常见的...
在try块中放置可能抛出异常的代码,在catch块中处理捕获到的异常,而finally块中的代码总是会被执行,无论是否发生异常。 异常类型: Java中的异常分为已检查异常(checked exception)和未检查异常(unchecked ...
Python 异常机制 05_finally结构.mp4