- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道为什么 InvocableTargetException
被设计为将其原因存储为目标,要求每个人都通过 invocateTargetException.getTargetException()
而不是 invocateTargetException.getCause 来解包它()
。这是通过记录不完整/错误的堆栈跟踪而导致错误处理最常见的情况之一。这在java语言中似乎是一个糟糕的设计决策,或者说这个设计的目的是什么?
最佳答案
您似乎有一个误解,认为 getCause
不会返回与 getTargetException
相同的值,因为它确实返回相同的值。只是早期的 Java 版本中不存在 getCause
。 IncationTargetException
自 Java 1.1 起就已存在,而一般异常链仅在 Java 1.4 中引入。
引自InvocationTargetException
(强调我的):
As of release 1.4, this exception has been retrofitted to conform to the general purpose exception-chaining mechanism. The "target exception" that is provided at construction time and accessed via the
getTargetException()
method is now known as the cause, and may be accessed via theThrowable.getCause()
method, as well as the aforementioned "legacy method."
和 InvocationTargetException.getTargetException()
文档(强调我的):
Get the thrown target exception.
This method predates the general-purpose exception chaining facility. The
Throwable.getCause()
method is now the preferred means of obtaining this information.
如果您查看 getCause
和 getTargetException
的实现,您会发现它们具有相同的实现:
/**
* Get the thrown target exception.
*
* <p>This method predates the general-purpose exception chaining facility.
* The {@link Throwable#getCause()} method is now the preferred means of
* obtaining this information.
*
* @return the thrown target exception (cause of this exception).
*/
public Throwable getTargetException() {
return target;
}
/**
* Returns the cause of this exception (the thrown target exception,
* which may be {@code null}).
*
* @return the cause of this exception.
* @since 1.4
*/
public Throwable getCause() {
return target;
}
关于java - 为什么 InvocableTargetException 被设计为将其原因存储为目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39438664/
我知道当不同包中有两个同名的类时会抛出此异常。 但是在这种情况下,我无法理解在遇到这个语句时如何抛出这个异常(如LogCat中所示) s=tv2.getText().toString(); 其中 s
我有一个使用Processing (http://www.processing.org) 库的小程序。处理库包含在 core.jar 中,我正在尝试将其嵌入网页中。这是 html n
我想知道为什么 InvocableTargetException 被设计为将其原因存储为目标,要求每个人都通过 invocateTargetException.getTargetException()
我正在为我的一个 friend 制作一个应用程序,并完成了登录屏幕的设计并将其保存在 eclipse 中。顺便说一句,这是一个 .fxml 文件,每当我尝试运行 main 方法时,它都会抛出 Invo
这个问题已经有答案了: Can't add multiple of same rectangle (1 个回答) 已关闭 4 年前。 我正在编写一个用于下国际象棋的小型 GUI 程序。我偶然发现了一个
enter image description here//基类 包com.IVAPP.qa.Base; import java.io.File; import java.io.FileInputSt
在使用 hibernate 和 postgres 时,我为实体类创建了旧式 xml 配置,并创建了一些 dao 实现,如(Manning Java Persistence with Hib)书中提到的
我制作了一个 Swing 小程序,它可以在 Eclipse 中运行,没有任何问题,但是当我使用 Chrome 使用 html 文件运行它时,我得到一个运行时异常:java.lang.reflect.I
在 eclipse 中调试一个小时后,我决定问这个问题,但没有确定错误的原因是什么。 问题是我正在制作一个将一些数据保存到 mysql 的 portlet,但它不起作用。该 portlet 已部署并在
我在小程序中有以下通过 JavaScript 调用的方法 public String getAString() { Object rc = AccessController.d
我正在尝试使用 startActivity(intent) 发送 HashMap 来启动新 Activity 。 我从这个链接中找到了答案: How to send hashmap value to
我试图在我的谷歌应用程序引擎项目上运行一个小程序。我为我的小程序创建了一个项目,它正在运行。然后我从这个项目中制作了一个 jar 文件,以便在我的谷歌应用程序引擎项目中使用这个小程序。我将 jar 文
我有一个 Lotus Notes hava 代理,可以在 Apache POI 的帮助下从 Lotus Notes 文档中附加的 Powerpoint 文件中检索幻灯片数据。有时它有效,有时它不起作用
我使用 JUnitTest 和模拟测试 Spring MVC 测试 getAll Employee,但当它在线运行时它会抛出错误“InitationTargetException”: when(cus
我是一名优秀的程序员,十分优秀!