[英]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.