Java异常层次结构问题

时间:2009-11-06 11:56:41

标签: java

我在这里有一个奇怪的问题

在我的ejbCreate()方法中,我将前端填充的字段值插入到数据库中,完成了Null检查,因此可空字段将转换为“”(空白空间)字段并正确插入行进入数据库。

现在我的ejbstore()方法没有相同的空值检查所以它总是用于抛出“java.sql.SQLException”但是以下内容 catch(java.sql.SQLException e)用于捕获它并且应用程序运行正常。

现在有一个新的补丁添加到Unix框(我的操作系统),现在同样的异常没有在“catch(java.sql.SQLException e)块”中被捕获,而是属于通用的“异常块” “,所以我的代码抛出了”与CORBA相关的NullPointerexception“,应用程序崩溃了。

任何人都可以知道操作系统补丁如何改变Java异常类型层次结构。??

1 个答案:

答案 0 :(得分:4)

我想知道是否存在一些奇怪的类加载器问题。

请记住,如果两个类是同一个类并且由同一个类加载器加载,则它们只是“相同”。

如果抛出SQLExcpetion的组件从一个类加载器加载它,并且你的组件从其他地方加载它,那么我怀疑你可以得到这种效果。

因此,操作系统补丁是否会影响JDBC驱动程序或加载它们的类路径?或者OS补丁是否可以将SQLException的副本放在新的地方。或者OS补丁是否可以设置一个影响某些组件的Classpath的环境变量?