- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在我的应用程序中使用 Guice,但当我想运行它时它会抛出以下异常:
Exception in thread "main"
Exception: com.google.common.util.concurrent.UncheckedExecutionException thrown from the UncaughtExceptionHandler in thread "main"
当我用 try...catch block 包装 main()
函数时,我收到以下 stackTrace:
Exception in thread "main" com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2047)
at com.google.common.cache.LocalCache.get(LocalCache.java:3869)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3873)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4798)
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4804)
at com.google.inject.internal.util.StackTraceElements.forMember(StackTraceElements.java:71)
at com.google.inject.internal.Messages.formatSource(Messages.java:241)
at com.google.inject.internal.Messages.formatSource(Messages.java:220)
at com.google.inject.internal.Messages.formatMessages(Messages.java:90)
at com.google.inject.CreationException.getMessage(CreationException.java:50)
at java.base/java.lang.Throwable.getLocalizedMessage(Throwable.java:396)
at java.base/java.lang.Throwable.toString(Throwable.java:485)
at java.base/java.lang.String.valueOf(String.java:2788)
at java.base/java.io.PrintStream.println(PrintStream.java:897)
at java.base/java.lang.Throwable$WrappedPrintStream.println(Throwable.java:752)
at java.base/java.lang.Throwable.printStackTrace(Throwable.java:659)
at java.base/java.lang.Throwable.printStackTrace(Throwable.java:648)
at java.base/java.lang.Throwable.printStackTrace(Throwable.java:639)
at com.github.blackjack.Main.main(Main.java:31)
Caused by: java.lang.IllegalArgumentException
at com.google.inject.internal.asm.$ClassReader.<init>(ClassReader.java:160)
at com.google.inject.internal.asm.$ClassReader.<init>(ClassReader.java:143)
at com.google.inject.internal.asm.$ClassReader.<init>(ClassReader.java:418)
at com.google.inject.internal.util.LineNumbers.<init>(LineNumbers.java:64)
at com.google.inject.internal.util.StackTraceElements$1.load(StackTraceElements.java:49)
at com.google.inject.internal.util.StackTraceElements$1.load(StackTraceElements.java:45)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3443)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2169)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2128)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2041)
... 18 more
从信息中我发现这个异常是由包含lambda定义的方法引起的,是由Provides方法抛出的。尽管如此,它应该用 Guice 4.0 修复。也许有人知道如何解决它并可以提供帮助?提前致谢!
main()
函数:
public static void main (String[] args){
try{
MainModule module = new MainModule();
Injector injector = Guice.createInjector(module);
GameFactory gameFactory = injector.getInstance(GameFactory.class);
DeckFactory blackjackDeckFactory = injector.getInstance(BlackjackDeckCreator.class);
PlayerFactory playerFactory = injector.getInstance(PlayerFactory.class);
Player player = playerFactory.createPlayer("Paul");
Player dealer = playerFactory.createPlayer("Dealer", true);
Deck deck = blackjackDeckFactory.createDeck();
Game game = gameFactory.createGame(player, dealer, deck);
game.start();
} catch (Exception e){
e.printStackTrace(); // line 31
}
}
最佳答案
I use Java 10, but also tried 8 and 9. Nothing helped.
我认为您没有使用 Java 8 或 9,因为由于使用 Java 版本 10 或更高版本,ClassReader
引发了异常。
Opcodes.V9
表示 Java 9。因此,请再次检查您的 Java 版本并使用 Java 9 或更早版本运行。
关于java - Guice 导致抛出 UncaughtExceptionHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50693221/
一 点睛 在没有向线程注入 UncaughtExceptionHandler 回调接口的情况下,线程若出现了异常又该如何处理,下面通过源码追踪下。 public UncaughtExceptionHa
我有一个类(在它自己的文件中) public class UncaughtExceptionHandler implements java.lang.Thread.UncaughtException
小例子: public class App { public static void main(String[] args) { throw new RuntimeE
我创建了一个 UncaughtExceptionHandler,如 this article 所示。 . 我还注册了这个处理程序来捕获所有线程中的异常,如下所示: Thread.setDefa
我已经阅读了几个如何使用 UncaughtExceptionHandler 将异常从嵌套线程传递到父线程的示例。目前,我的嵌套线程的 UncaughtExceptionHandler 按其应有的方式捕
我在 Groovy/Java 中使用 UncaughtExceptionHandler 时遇到问题。 class UncaughtExceptionLogger implements Thread.U
我最近了解了 Java 1.5 的这个功能,并开发了一个示例代码来使用它。我的目标是在线程因未捕获的异常而死亡时重新启动线程。 public class ThreadManager { pub
Thread.UncaughtExceptionHandler声明当处理未捕获异常的方法本身抛出异常时,该异常将被忽略: void uncaughtException(Thread t, Throwa
我不确定为什么未调用 uncaughtException 方法。 static { /** * Register a logger for unhandled exceptions.
我想在我的 Java 应用程序中定义一个应用程序级别 UncaughtExceptionHandler,如果在我的应用程序的一个线程中抛出未捕获的异常,则调用它。我知道可以为一组线程 (ThreadG
在 MonoTouch 中,如何注册未捕获的异常处理程序(或类似函数) 在 Obj-C 中: void uncaughtExceptionHandler(NSException *exception)
我想在记录未处理的异常后关闭应用程序。在这里搜索后,我做了以下内容: public class MyApplication extends Application { //uncaught e
我有一个全局异常处理例程,它在运行时异常中包装了一些异常 像这样 public class ExceptionHandler { public static void handle(){ th
我正在创建一个启动器。有时我会遇到错误,当然我必须修复它们,但我正在尝试为我的整个应用程序使用 UncaughtExceptionHandler。 为此我使用了这个类: public class
我想在我的应用程序中使用 Guice,但当我想运行它时它会抛出以下异常: Exception in thread "main" Exception: com.google.common.util.co
我已经实现了一个 ExceptionHandler 来防止应用程序启动崩溃的 Activity,并且它可以正常工作。我的问题是它不再显示错误对话框。这是异常处理程序的代码: public class
我正在编写一个apk分析程序。我无法深入细节,因为这是研究 Material 。然而,重点是,当我执行分析例程时,我会不时收到以下消息: Exception: java.lang.NullPointe
我想将我的 Maven 项目中的所有异常(在控制台中显示)记录到一个文件中。我创建一个实现 UncaughtExceptionHandler 的类并调用 log4j Logger.error。这适用于
我的消费者没有按照我期望的方式工作。以下是 sscce我的真实程序中发生的情况。 预期: 打印终于来了! 打印关于打印堆栈跟踪 打印 NullPointerException 堆栈跟踪。 实际: 打印
我正在开发一个具有远程异常处理功能的应用程序。也就是说,如果某个地方发生了意外异常,应用程序会正常关闭,并在我们服务器的日志中生成报告。我正在为此使用 UncaughtExceptionHandler
我是一名优秀的程序员,十分优秀!