如何在代码启动时诊断 Guice 注入错误

How to Diagnose Guice injection errors on code startup

很多次我在使用Guice Injection 时,都犯了一些错误。有时很明显问题是什么,但 Guice 似乎非常擅长吞噬异常并给出相当隐蔽的错误消息。比如下面的:

Exception com.google.inject.CreationException: Unable to create injector, see the following errors:
1) [Guice/ErrorInjectingConstructor]: SomeTerminalException: Creation of SomeService client connection pool failed.
at SomeProvider.<init>(SomeOtherProvider.java:39)
while locating SomeProvider
at YourClientModule.configure(YourClientModule.java:10)
 \_ installed by: SomeModule SomeProvider

出于法律原因,我更改了 class 名称,但意图是一样的。

调试此类问题的好方法是什么?

当堆栈跟踪包含 <init> 时,这意味着执行是在构造函数中进行的(参见 What does <init> signify in a Java exception?)。如错误所示,这发生在 SomeOtherProvider.java.

的第 39 行