当前位置: 首页 > 面试题库 >

在Java中设置异常原因

孔城
2023-03-14
问题内容

我可以看到捕获了一个可以打印的异常e.getCause(),尽管这种异常一直存在null

我是否需要将其设置在某个地方,或者缺少将原因设置为null的东西?


问题答案:

一个例外的属性messagecause。该消息是一种描述,或多或少准确地告诉人类读者出了什么问题。的cause是不同的东西:它是,如果有的话,另一个(嵌套)Throwable

如果我们使用这样的自定义异常,通常会使用该概念:

catch(IOException e) {
  throw new ApplicationException("Failed on reading file soandso", e);
  //                              ^ Message                        ^ Cause
}

编辑-响应@djangofans评论。

标准是嵌套表达式(原因)也将与其堆栈跟踪一起打印。

运行这个小应用程序

public class Exceptions {
    public static void main(String[] args) {
        Exception r = new RuntimeException("Some message");
        throw new RuntimeException("Some other message", r);
    }
}

将输出

Exception in thread "main" java.lang.RuntimeException: Some other message
    at Exceptions.main(Exceptions.java:4)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.RuntimeException: Some message
    at Exceptions.main(Exceptions.java:3)
    ... 5 more

这两个消息都包括在内。



 类似资料:
  • 问题内容: 我试图从具有2个参数的表的数据库中获取数据,当我尝试执行此代码时,它给出错误:参数未设置。我认为这是一个小错误,但我找不到。问题可能出在2个参数,我以前从未使用过2个。谁能帮我? 这是错误 问题答案: 您只需要为Datum值提供第二个参数:

  • 我正在开发一个遗留系统,它有一个自定义的异常,到处都使用gosh frickity。它受到了ServletException类的启发,该类表示“好的,每当您的Servlet中出现异常时,您都会希望抛出此ServletException”。 随着系统的发展(超过10年),一个在更高级别捕获异常的更强大的系统已经出现,不再需要将每个异常都包装在这个自定义异常中。(有人可能会说从来没有,但那是另一回事。

  • 我正在使用 Camel sql 组件,并希望在事务失败时使用 onConsumeFailed 更新具有异常堆栈跟踪的记录。 表结构: 如果不存在,则创建表 库存( itemnbr 整数 非空默认值 nextval('inventory_itemnbr_seq'::regclass), 位置整数, 位置类型字符变化 (2) , 颜色字符变化 (5) , 品牌字符变化 (5), soh 双精度, ca

  • 本文向大家介绍浅谈十个常见的Java异常出现原因,包括了浅谈十个常见的Java异常出现原因的使用技巧和注意事项,需要的朋友参考一下 异常是 Java 程序中经常遇到的问题,我想每一个 Java 程序员都讨厌异常,一 个异常就是一个 BUG,就要花很多时间来定位异常问题。 1、NullPointerException 空指针异常,操作一个 null 对象的方法或属性时会抛出这个异常。具体看上篇文章:

  • 每当我的VNC连接被终止时(每当我重新启动VM时),我都试图捕捉一个异常,并且我试图忽略它以继续我的Jython脚本。我不知道如何编写try catch语句来捕获异常,因为它起源于Java。这是一个sikuliX脚本。

  • 我将以下JSON用作模拟连接模拟服务器。在包含此JSON文件后,在线模拟服务器启动,我得到以下错误 { “scenarioName”: “重试方案”, “requiredScenarioState”: “已授权”, “newScenarioState”: “已启动”, “id”: “28d9932d-20a9-41f1-a05b-2e080029f914”, “请求”: { “urlPathPat