Hallo,
mein Problem bezieht sich auf das Thema Exceptions.
Mein Programm wertet Datenbankeinträge aus und setzt dementsprechend eine Ampel auf Grün oder Rot.
Im Fall eines Verbindungsfehlers zur Datenbank wird eine SQL-Exception geworfen und die Ampel blinkt in Gelb. Soweit so gut, funktioniert wunderbar bis hier.
Allerdings weiß ich nicht, wie ich wieder den normalen Ablauf starte. Verzweifeltes Suchen in der Java-Insel und in Foren konnte mir leider auch nicht weiterhelfen....
Hier der Code:
Vielen Dank im Voraus,
Gruß
euer Captain
mein Problem bezieht sich auf das Thema Exceptions.
Mein Programm wertet Datenbankeinträge aus und setzt dementsprechend eine Ampel auf Grün oder Rot.
Im Fall eines Verbindungsfehlers zur Datenbank wird eine SQL-Exception geworfen und die Ampel blinkt in Gelb. Soweit so gut, funktioniert wunderbar bis hier.
Allerdings weiß ich nicht, wie ich wieder den normalen Ablauf starte. Verzweifeltes Suchen in der Java-Insel und in Foren konnte mir leider auch nicht weiterhelfen....
Hier der Code:
Java:
public void run() {
while(!interrupted()) {
try {
maxWarenkorb = getMaxWarenkorb(); //maximalen Warenkorb aktualisieren
query = getQuery(); //SQL-Abfrage aktualisieren
db_url = getDbUrl(); //DB-Url aktualisieren
db_user = getDbUser(); //DB-Username aktualisieren
db_pw = getDbPassword(); //DB-Passwort aktualisieren
Connection con = DriverManager.getConnection(db_url,db_user,db_pw); //Verbindung zur DB herstellen
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); //SQL-Statement erstellen
ResultSet rs = stmt.executeQuery(query); //Ergebnisse der Abfrage in ein ResultSet schreiben
count = 0;
//Zählt die Anzahl der Elemente(Fahrzeuge) im ResultSet
while(rs.next()) {
String s = rs.getString(1);
System.out.println(s);
count++;
}
System.out.println("Fahrzeuge: " + count);
stmt.close(); //Statement schließen
con.close(); //Verbindung zur DB schließen
//Setzt den Zustand der Ampel von Grün auf Rot, sobald die maximale Kapazität des Warenkorbs überschritten wird
/*
if(count <= maxWarenkorb) {
zustand = Zustand.GRÜN;
}
else {
zustand = Zustand.ROT;
}
*/
zustand = getZustand();
adminAmpel.setFüllstand(count); //Füllstand im Ampelobjekt aktualisieren
adminAmpel.setZustand(zustand.toString()); //Zustand im Ampelobjekt aktualisieren
Thread.sleep(10000); //Wartezeit bis zur nächsten Datenbankabfrage
}
//Exceptions abfangen
catch(SQLException e) {
System.out.println("Fehler bei der SQL-Abfrage!");
zustand = Zustand.STÖRUNG;
while(zustand == Zustand.STÖRUNG) {
adminAmpel.setZustand(zustand.toString());
}
zustand = getZustand();
continue;
//break;
}
catch(Exception e ) {
e.printStackTrace();
break;
}
}
}
Vielen Dank im Voraus,
Gruß
euer Captain