try - wie benuze ich es richtig ?

melmager

Erfahrenes Mitglied
Mal ein ganz banale Frage wie setzt man try eigendlich richtig ein ?

Code:
try {
		GPIO.setState(sclk, GPIO.HIGH);
		ThreadExt.sleep(tks);
		GPIO.setState(dtout, GPIO.LOW);
		ThreadExt.sleep(tks);
		GPIO.setState(sclk, GPIO.LOW);
   	  	ThreadExt.sleep(tks*2);
   	  	GPIO.setState(sclk, GPIO.HIGH);
   	  	ThreadExt.sleep(tks);
   	  	GPIO.setState(dtout, GPIO.HIGH);
   	  	ThreadExt.sleep(tks);
   	  	GPIO.setState(sclk, GPIO.LOW);
   	  	ThreadExt.sleep(tks*2);
	}
   	catch (InterruptedException e) 
   	{}

sleep könnte eine Exception aus lösen

Code:
try {     
         for (int lo=1;lo<8;lo++) {
            ThreadExt.sleep(tks*2);
            wert = wert << 1;
            if (GPIO.getState(dtin) == GPIO.HIGH) {
              wert++;
            }
            GPIO.setState(sclk,GPIO.HIGH);
            ThreadExt.sleep(tks*2);
    	    GPIO.setState(sclk, GPIO.LOW); 	    
          } //end for
      }  	    
      catch (InterruptedException e)  {}

darf man eigendlich mehrere Exeption auslöser zusammen fassen oder wie im zweiten Beispiel eine Schleife
ausführen innerhalb eines Try ?

oder muss / solle man jede einzelne Möglichkeit abfangen ?
 
Hallo!

Kommt drauf an was du machen möchtest...
Code:
while(...){
 try{
  ...inTry
  }catch(SomeException e){
     e.printStackTrace();
     ....
  }

}
Dieses Codefragment verlässt die while-Schleife nicht, wenn innerhalb des "inTry"-Blocks eine "einfache" Exception auftritt.

Im gegensatz dazu wird in diesem Beispiel:
Code:
try{
  while(...){

  ...inTry
  }
}catch(SomeException e){
     e.printStackTrace();
     ....
}
Die while-Schleife beim auftreten einer Exception verlassen.

Ja, man kann den Code zur Behandlung mehrerer Exceptions Zusammen fassen indem man einfach ihre Basisklasse in der catch-Klausel definiert.
Aber wie schon gesagt hängt alles davon ab was man machen will.
Mehr dazu gibts hier: http://www.galileocomputing.de/openbook/javainsel4/javainsel_07_000.htm#Xxx999389

Gruß Tom
 
Zurück