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

为什么只得到一小部分空点异常堆栈

凌博实
2023-03-14

我从下面的地方得到了NullPointException。

at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)

因为我使用ThreadPoolExecutor,并在此thread方法中获得异常。然后我有其他方法重写AfterExecute:

   @Override
protected void afterExecute(Runnable r, Throwable t) {
    T result = future.get();
java.lang.NullPointerException
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
    at java.util.concurrent.FutureTask.get(FutureTask.java:83)
    at com.xxxxx.xxxxx.execution.AbstractExecutionUnit.getResult(AbstractExecutionUnit.java:93)
    at com.xxxxx.xxxxx.execution.AbstractExecutionUnit.afterExecute(AbstractExecutionUnit.java:153)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:888)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
    at com.xxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(BetRadarCache.java:134)
    at com.xxxxx.xxxxx.execution.OMDataModelServiceImpl$10.call(OMDataModelServiceImpl.java:1010)
    at com.xxxxx.xxxxx.execution.OMDataModelServiceImpl$10.call(OMDataModelServiceImpl.java:999)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    ... 2 more

之后:

java.lang.NullPointerException
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at com.xxxxx.xxxxx.execution.AbstractExecutionUnit.getResult(AbstractExecutionUnit.java:93)
at com.xxxxx.xxxxx.execution.AbstractExecutionUnit.afterExecute(AbstractExecutionUnit.java:153)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:888)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)

为什么日志不同?如果有人能解释原因,我真的很感激。

共有1个答案

充修能
2023-03-14

这是JVM中的一个优化。在多次抛出相同的异常并打印stacktrace之后,它将优化并打印截断的stacktrace。

文档中提到了

服务器VM中的编译器现在为所有“冷”内置异常提供正确的堆栈回溯。出于性能考虑,当此类异常抛出几次时,可能会重新编译该方法。重新编译后,编译器可能会使用不提供堆栈跟踪的预分配异常选择更快的策略。要完全禁用预分配异常的使用,请使用这个新标志:-xx:-OmitStackTraceInfastThrow。

 类似资料:
  • 我想做的是添加自动垂直滚动时,扩大编辑器窗口太多到底部: 例如,如果在屏幕截图中,这是原始的editorwindow大小: 当点击例如对话和折叠它,然后我想使它与垂直滚动: 我可以用鼠标继续向下拉伸窗口,但我想在这种情况下使用滚动: 异常消息有点长:异常在第27行: 无效操作异常:堆栈为空。系统。集合。堆栈。Peek()(at: 0)UnityEngine. GUI. EndScrollView(

  • 我编写了这段代码,将整个以10为基数的数字转换成二进制。我相信代码就是它所需要的一切,但我无法让工作。 我在这个网站和其他网站上花了几个小时,尝试了无数次的修改,但都没有用。 我已经让代码无错误地编译,但一旦我运行它并输入程序就会崩溃。 下面是代码: 这些是java在我输入数字时抛出的异常。 我希望这是足够的信息。

  • 我正在学习“放心框架”。 我使用http://ziptasticapi.com免费的API为我的演习。 当我打电话: 我得到以下字符串: {“国家”:“美国”、“州”:“正义与发展党”、“城市”:“阿达克”} as响应字符串值。 当我尝试时: 我突然想到: JAVAlang.IllegalStateException:无法分析对象,因为响应中未指定支持的内容类型。内容类型为“文本/html”;字符

  • 我用RSA算法加密和解密。当我加密一个字符串时,它工作正常。当我解密时,我得到一个错误。下面,我发布我的代码。

  • 请问为什么第13行的错误是未报告的异常,必须捕获pr声明要抛出

  • 这是类a的一个函数,我将我的值传递给一个类名,并确认它的寄存器函数。 这是课堂确认。在这门课上,我计划在服务器内部发布数据。url中没有错误。我已经打印了这个代码“System.out.println”(“wei”getPostDataString(postDataParams))我得到了我的价值。但系统显示为空指针。代码的其他部分有错误吗?