如何告诉声纳有关无限循环的信息

时间:2018-02-02 06:31:12

标签: java sonarqube

我有一个Java代码如下

try {
    while (true) {
        // do something without break but will throw an expected
        // exception in some random iteration of the loop
    }
} catch (Exception e) {
    // handled properly
}

Sonar报告这是一个Blocker Bug,描述如here所述。我怎么能摆脱这个,因为我实际上期望我的循环由异常结束,因此不需要中断。

1 个答案:

答案 0 :(得分:1)

使用控制流的异常通常不被认为是良好的编码实践。可以找到here的原因。

如果您仍希望这样做,您可以这样做:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.22/fabric.js"></script>

<button onclick="dropText();" class="dropdown-item">Add Text</button><button id="save">Save</button>
<button onclick="replaceImage('https://i.imgur.com/SamdNdX.png')">Blank</button>
<button onclick="replaceImage('https://i.imgur.com/TIINd6E.png')">Hands Pic</button>

<div id="imagesave">

  <table>
    <tr>
      <td>
        <canvas id="c0" width="187.5" height="318.75"></canvas>
      </td>
      <td>
        <canvas id="sc1" width="187.5" height="318.75"></canvas>
      </td>
      <td>
        <canvas id="sc2" width="187.5" height="318.75"></canvas>
      </td>
      <td>
        <canvas id="sc3" width="187.5" height="318.75"></canvas>
      </td>
    </tr>
    <tr>
      <td>
        <canvas id="sc4" width="187.5" height="318.75"></canvas>
      </td>
      <td>
        <canvas id="sc5" width="187.5" height="318.75"></canvas>
      </td>
      <td>
        <canvas id="sc6" width="187.5" height="318.75"></canvas>
      </td>
      <td>
        <canvas id="sc7" width="187.5" height="318.75"></canvas>
      </td>
    </tr>
  </table>

</div>

循环中的while(true) { try { //code... } catch (Exception e) { //code... break; } } 应该可以正常工作。