Java异常层次结构问题

标签 java

我这里有一个奇怪的问题

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

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

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

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

最佳答案

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

请记住,只有当两个类是同一个类并且由同一类加载器加载时,它们才是“相同”的。

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

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

关于Java异常层次结构问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1687134/

相关文章:

java - 为什么 ConfigurationBuilder API 不创建记录器?

java - Java文件中import语句的含义

java - 是否有可能在 Vespa.ai 中获得匹配的 "where"条件?

java - 如何用新值替换现有值

java - 匹配任何字符串正则表达式

java - android studio 自动完成 : how to display constructors with parameters

java - 当 JsonProperty 有时是数组有时是单个对象时,Jackson 反序列化

java - 在 Spring Boot 数据休息应用程序中获取 EntityManager

java - JPA 2.0 : How to improve performance on bulk insertion through JPA

java - 在 allocateCapacity/deallocateCapacity 期间抛出 InvalidCapacity 和 InvalidState 异常