2017-04-19 72 views
0

我有一個while循環。在while循環中有一個try catch。 在每2秒鐘嘗試一次IP攝像機的靜止圖像。重試捕捉java與靜止圖像

但somethime我得到一個異常,因爲代碼沒有得到所有的數據包.. 現在我想,當我得到的例外,那我的代碼重試在我的代碼的嘗試..

你能幫我 ?

while(true){ 

      Image image = null; 
    try { 

       String path = "http://10.13.8.14/media/cam0/still.jpg?res=800"; 

       URL url = new URL(path); 
       image = ImageIO.read(url); 
       Thread.sleep(2000); 

      } catch (Exception e) { 
       JOptionPane.showMessageDialog(null, "image niet in orde"); 
      } 
      ImageIcon lic = new ImageIcon(image); 
      label.setIcon(lic); 

     } 
+0

只是一個評論。 看起來你有一個無限循環,在某個地方設置了休息。 –

+0

這就是含義,我希望每2個secons從我的IP攝像機的一個新的圖像url – belmen

+0

請確保你不會在內存不足... –

回答

1

將代碼放在方法中並調用兩個調用的方法。

public void tryBlock() throws Exception{ 
     Image image=null; 
     String path = "http://10.13.8.14/media/cam0/still.jpg?res=800"; 
     URL url = new URL(path); 
     image = ImageIO.read(url); 
     Thread.sleep(2000); 
    } 

保持調用此方法,直到沒有例外的是看你的代碼拋出後

+0

你能舉個例子嗎? – belmen

+0

繼續調用這個方法,直到沒有拋出異常 –

+0

我不能寫一個方法,因爲我的代碼站在一個線程中 – belmen