java.util.Timer und Funktion mit SQL Exception

Hanskopf

Mitglied
Hey,
ich will mit der Timmer-Klasse (java.util.Timer) versuchen in regelmäßigen Zeitabständen eine Methode aufzurufen die SQL Anfragen an eine Datenbank stellt.

Timer:
Code:
final Timer timer = new Timer();
   TimerTask task = new TimerTask() {
       public void run(){
       getViews();
       }
    };
timer.scheduleAtFixedRate(task, 0, 1000);


und die aufzurufende Methode "getViews" wirft eine SQLException:
Code:
public void getViews() throws SQLException {


Wenn ich das so stehen lasse bekommt ich halt einen Fehler weil ich oben im Timer keine entsprechende SQL Exception werfe...
Exceptions not handled: java.sql.SQLException

Und wenn ich den Timer wie folgt änder und eine Exception werfe:
Code:
final Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() throws SQLException{
getViews();
}
};
timer.scheduleAtFixedRate(task, 0, 1000);


Dann bekomme ich den Fehler:
method run() in anonymous class cannot override method run() in class java.util.TimerTask, overridden method does not throw class java.sql.SQLException



Wer kann mir weiterhelfen ? ?(
 
Zuletzt bearbeitet:
Um den Code, der die SQLException schmeißt, einen try-catch Block bauen. Dann entweder im catch-Block direkt behandeln oder um die SQLException eine RuntimeException drum bauen und die dann weiterwerfen:
Java:
public void getViews() {

  try {
    // Hier Dein SQL-Code, der die SQLException schmeißt
  }
  catch (SQLException e) {
    // Hier Code zum Behandeln der Exception oder:
    throw new RuntimeException(e);
  }
}
 
> dann läuft es zwar aber es wird immer nur das catch des try-catch blocks ausgeführt...

korrektes Verhalten, falls eine Exception auftritt?!
darum musst du dich inhaltlich kümmern, das hat doch mit der Codeanordnung auf Ebene von 'try/catch ja oder nein?' nichts zu tun..
 
> dann läuft es zwar aber es wird immer nur das catch des try-catch blocks ausgeführt...

korrektes Verhalten, falls eine Exception auftritt?!
darum musst du dich inhaltlich kümmern, das hat doch mit der Codeanordnung auf Ebene von 'try/catch ja oder nein?' nichts zu tun..
Oder, um es etwas unverklausulierter zu sagen 😉: Wenn der Code im catch-Block ausgeführt wird, fliegt im try-Block offensichtlich eine Exception, deren Ursache Du natürlich beseitigen musst.
 

Neue Themen


Zurück
Oben