2017-04-19 5 views
0

Ich habe eine while-Schleife. In der While-Schleife gibt es einen Versuch zu fangen. In dem Versuch, alle 2 Sekunden das Standbild von einer IP-Kamera zu bekommen.retry catch java mit Standbild

Aber somethime bekomme ich eine Ausnahme, da der Code nicht alle Pakete bekommt .. Jetzt, wo ich will, wenn ich die Ausnahme erhalten, dass mein Code, um den Versuch in meinem Code wiederholen ..

Können Sie Hilf mir ?

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

Nur ein Kommentar nach einem Blick auf Ihren Code geworfen wird. Siehst aus, als hättest du eine Endlosschleife, irgendwo eine Pause machen. –

+0

das ist die Bedeutung, ich möchte alle 2 Sekunden ein neues Bild von meiner IP-Kamera URL – belmen

+0

Seien Sie sicher, dass Sie nicht in nicht genügend Speicher enden ... –

Antwort

1

Setzen Sie den Code in eine Methode und rufen Sie die Methode für beide Aufrufe auf.

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); 
    } 

keep diese Methode aufrufen, bis keine Ausnahme

+0

getroffen wurde, können Sie ein Beispiel geben? – belmen

+0

rufen Sie diese Methode, bis keine Ausnahme ausgelöst wird –

+0

Ich kann keine Methode schreiben, weil mein Code in einem Thread steht – belmen