簡體   English   中英

Java 代碼執行難題 — 跳過行而不拋出異常

[英]Java Code Execution Puzzle — Skipping Lines Without Exception Thrown

我使用調試器來跟蹤問題。 我對代碼是如何執行的感到非常困惑。 請看附圖。 原來在第189行執行后,執行跳過了194行和196行,跳到198行。我懷疑189行可能有異常,所以我用try-catch包裹了它。 但是,在第 189 行執行后,它仍然跳到第 198 行。

在此處輸入圖像描述

The following was the original code ( https://github.com/de-luxe/burstcoin-jminer/blob/master/src/main/java/burstcoin/jminer/core/round/Round.java ) without the try-catch (Line 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);

也許你需要catch(Throwable th)而不是(Exception e)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM