猿问

Java 代码执行难题——跳行而不抛出异常

我使用调试器来跟踪问题。我对代码是如何执行的感到非常困惑。请参阅附图。本来189行执行完后,就跳过了194行、196行等后面的行,跳到了198行。我怀疑189行可能有异常,所以用try-catch包裹起来。不过189行执行完后,还是跳到了198行。

以下是原始代码(https://github.com/de-luxe/burstcoin-jminer/blob/master/src/main/java/burstcoin/jminer/core/round/Round.java),没有 try-catch (第 188 行 - 第 195 行是利息)。调试器在配置“useOpenCl=false”下运行。如果“useOpenCl=true”,则程序可以正常运行,即第189行之后的行(原代码中的第188行)将在支持OpenCl的机器上正常执行。显然,我试图在不使用 OpenCl 的情况下部署它,但由于这个问题,我无法做到这一点。我从事 Java 编程多年,这对我来说真的很有趣,代码如何通过跳过一些行来执行而不在任何地方抛出异常。


  // start reader

    int scoopNumber = calcScoopNumber(event.getBlockNumber(), event.getGenerationSignature());

    reader.read(previousBlockNumber, blockNumber, generationSignature, scoopNumber, lastBestCommittedDeadline, networkQuality);


    // ui event

    publisher.publishEvent(new RoundStartedEvent(restart, blockNumber, scoopNumber, plots.getSize(), targetDeadline, baseTarget, generationSignature));


    network.checkLastWinner(blockNumber);


holdtom
浏览 129回答 1
1回答

繁星淼淼

也许你需要catch(Throwable th)而不是(Exception e)
随时随地看视频慕课网APP

相关分类

Java
我要回答