【问题标题】:Popping debugger with code in Java使用 Java 中的代码弹出调试器
【发布时间】:2013-03-17 03:53:53
【问题描述】:

我在 C 中使用了abort() 使我的程序崩溃。调试器会捕获它。

Java 中的等价物应该是例外。但是 Java 也有非常严格的异常链策略,所以使用异常来调试似乎不是一个好主意。

我应该在 Java 中为此使用什么?出于调试目的而故意的程序崩溃,可以被调试器捕获。 (我使用的是 Eclipse)

更新

如果代码可以在发布构建时选择退出,那就太好了。

【问题讨论】:

    标签: java debugging crash


    【解决方案1】:

    在 Eclipse 中,您可以设置调试点,并在调试模式下运行。

    也就是说,CheckedException(必须被调用函数捕获或向上传递)和UncheckedException(更接近您想要的)之间存在差异。如果您想强制崩溃,请抛出后者。

    但是,这通常是一种糟糕的编程方式。使用替代方法来捕获所需的错误,您会发现更好的结果。

    【讨论】:

      【解决方案2】:

      您可以使用assert(false)。假设您使用 Eclipse 作为调试器,您可以 set Eclipse to break on specific exceptions(在本例中为 AssertionError)。确保你enable assertions,否则它不会做任何事情。

      由于您必须明确告诉 JVM 启用断言,我认为这将算作 “可以在发布构建时选择退出的代码。”

      【讨论】:

      • Eclipse 的异常断点正是我想要的。
      【解决方案3】:

      我不知道如何在 Eclipse 中处理它。但是,在 JDB 下,这可以通过捕获异常来完成。 Eclipse应该有这样的接口。

      像这样使用命令行

      "catch java.io.FileNotFoundException"
      

      详情请参考here

      【讨论】:

        猜你喜欢
        • 2019-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-15
        • 1970-01-01
        相关资源
        最近更新 更多