当前位置: 首页 > 知识库问答 >
问题:

Eclipse Spring Boot中“抛出新SilentExitException()”处的断点

邹高懿
2023-03-14

每次我在Eclipse IDE(Spring Tool Suite)中以调试模式运行Spring Boot项目时,线程都会在抛出新的SilentExitExc0019();行时停止,即使没有断点。

有什么办法可以避免这种行为吗?

org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exit货币线程()(第53行):

public static void exitCurrentThread() {
    throw new SilentExitException();
}

这在升级到1.3.0里程碑后开始发生。

Spring工具套件

Version: 3.7.0.RELEASE
Build Id: 201506290649

平台:

Eclipse Luna SR2 (4.4.2)

共有3个答案

华温书
2023-03-14

由于Eclipse on Debug模式已经允许有限的热补丁,我发现重新加载程序在大多数情况下都会适得其反,因此我决定通过以下方式禁用它:

System.setProperty("spring.devtools.restart.enabled", "false");

参考:https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html#using-boot-devtools-restart-disable

由于该异常是由重新加载程序引发的,这也解决了这个问题。请注意,您必须使用系统。setProperty方法,而不是在应用程序中设置它。属性

哈沛
2023-03-14

将属性添加为VM参数:

-Dspring.devtools.restart.enabled=false

这样,您就不必更改代码,因为在使用以下命令时就是这样:

System.setProperty("spring.devtools.restart.enabled", "false");
杨景山
2023-03-14

不幸的是,这是一个已知的问题,与新的sping-boo-devols模块(见https://github.com/spring-projects/spring-boot/issues/3100)。我们使用这个技巧来杀死主线程,以便我们可以用可重新加载的版本替换它。到目前为止,我还没有找到防止调试断点触发的方法。

现在,您可以在Java中切换“未捕获异常时暂停执行”复选框-

 类似资料:
  • 每次我在Eclipse IDE(Spring Tool Suite)中以调试模式运行Spring Boot项目时,线程都会在行停止,即使没有断点。 有没有什么办法来避免这种行为? Spring工具套件 平台:

  • 问题内容: Visual Studio有一个选项,可以在引发未处理的异常时自动将其插入调试器,Eclipse是否具有类似的功能? 问题答案: 即使未捕获到这些异常,您也可以定义要在其上创建断点的确切的异常列表(应该等效于“ unhandled”)

  • 我正在调试一个HiveProcessor,它遵循官方的PutHiveStreaming处理器,但它写入的是Hive2.x,而不是3.x。该流在Nifi cluster 1.7.1中运行。尽管发生此异常,但数据仍被写入配置单元。 例外情况是: 有人做过类似的事吗?或者有没有更简单的方法来调试自定义处理器?

  • 问题内容: 我有一个关于Java中重新引发异常的非常简单的问题。 这是代码片段: 为什么我们需要在第一个版本中重新抛出,而第二个版本看起来更优雅?可能有什么好处,并且优先选择哪个版本? 问题答案: 你是对的。第二版更好。而且,第一个版本没有任何意义。除了异常的堆栈跟踪为“错误”之外,它的功能相同。 有“重新抛出”异常的原因如下: 如果您之前有事要做。 如果捕获一种类型的异常并抛出另一种类型的异常:

  • 版本: 我得到以下错误:

  • 在 linux 内核中你会发现很多关于中断和异常处理的话题 中断和中断处理 Part 1. - 描述中断处理主题 深入 Linux 内核中的中断 - 这部分开始描述和初步步骤相关的中断和异常处理。 初步中断处理 - 描述初步中断处理。 中断处理 - fourth part describes first non-early interrupt handlers. 异常处理的实现 - 一些异常处理的