gpt4 book ai didi

java - 更改方法在 Java 中引发的异常类型

转载 作者:行者123 更新时间:2023-12-01 09:13:00 25 4
gpt4 key购买 nike

我正在尝试做的事情感觉违反直觉,但 Java 一直让我感到惊讶,所以我试一试。

我在 ESAPI 库的帮助下实现了一个应用程序。这个库提供了自己的异常(exception)。除了众所周知的异常行为之外,这些异常还执行诸如使用 log4j 自动记录日志以及向入侵检测模块提供信息之类的事情。

现在我想在我的应用程序的所有部分中使用这些功能。每当我的方法抛出异常时,我不会抛出正常异常,而是从新的 EnterpriseSecurityException 扩展而来的自制异常。奇迹般有效。

但是,如果我使用一种引发正常异常的方法,我该怎么办?假设我想使用 java.io.FileInputStream 读取文件?它找不到文件并抛出 FileNotFoundException。不幸的是,FileNotFoundException 没有提供我自己的异常的功能,因为它没有扩展 EnterpriseSecurityException。

Java中有什么技巧可以改变方法抛出的异常吗?当我写这篇文章时,这对我来说听起来很奇怪,但也许有人能想出一个解决方案。到目前为止,我唯一的想法是捕获正常异常,提取相关信息,并用它构建一个新异常。但这似乎很粗糙......

最佳答案

捕获异常并抛出一个从 EnterpriseSecurityException 扩展的新异常和 将旧异常传递给新异常以将它们链接在一起 .

try {
...
} catch (FileNotFoundException e) {
throw new CustomEnterpriseSecurityException(e);
}

通过链接异常,您不会丢失原始异常的堆栈跟踪。

关于java - 更改方法在 Java 中引发的异常类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5648821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com