簡體   English   中英

循環未在Java類中退出

[英]Loop not exiting in Java class

當我運行腳本時,瀏覽器將繼續永久打開新選項卡,直到我在任務管理器中結束該過程為止。 這個循環不應該只打開瀏覽器一次嗎? 即使您忽略while循環,而只關注瀏覽器請求,我也會得到相同的行為。 這與try / catch有關嗎? 這是怎么了

Desktop d = Desktop.getDesktop();       

Boolean doOnce = false;

while (doOnce == false) {
    try {
        d.browse(new URI("http://localhost"));
        doOnce = true;
    } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

如果d.browse(....)拋出異常,並且doOnce = true將永遠不會執行。

將doOnce = true移到finally塊中,它應該可以工作。

如果您只想一次執行try / catch塊, while應將doOnce放入finally塊中:

try 
{
    d.browse(...);
} catch (URISyntaxException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}finally{
doOnce = true;
}

但如果你想從退出while發生異常時,你應該把它放在catch塊:

try 
{
    d.browse(...);
} catch (URISyntaxException e) {
     doOnce = true;
    // TODO Auto-generated catch block
    e.printStackTrace();
}
try 
{
    d.browse(...);
    doOnce = true;
} catch (URISyntaxException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

如果上面的browse調用引發異常,則永遠不會設置退出標志。

為什么要循環執行此操作? 如果您的目的是只執行一次此步驟,請以語句形式執行一次,而不要使用流控制結構。

暫無
暫無

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

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