Hallo zusammen,
ich bin gerade dran ein Java Programm mit einer MySQL-DB Anbindung zu schreiben.
Nun habe ich fragen zum Exception Handling.
Wenn ich eine Verbindung zur Datenbank aufbaue können folgende Fehler geschehen:
1. Datenbank nicht vorhanden oder IP flasch
2. Kennwort Username falsch
3. MySQL Standard Schma nicht vorhanden
Mein Code:
Jetzt bekomme ich aber folgenden Fehler:
Fange ich etwa alle SQL Exceptions mit catch (java.sql.SQLException e) ab?? Wenn das so ist, kann mir dann jemand sagen wie ich genauer unterscheiden kann?
Danke
Gruß
Andreas
ich bin gerade dran ein Java Programm mit einer MySQL-DB Anbindung zu schreiben.
Nun habe ich fragen zum Exception Handling.
Wenn ich eine Verbindung zur Datenbank aufbaue können folgende Fehler geschehen:
1. Datenbank nicht vorhanden oder IP flasch
2. Kennwort Username falsch
3. MySQL Standard Schma nicht vorhanden
Mein Code:
Code:
try
{
Class.forName("com.mysql.jdbc.Driver");
this.connection = DriverManager.getConnection("jdbc:mysql://" + IP + ":3306/" + Schma, User, Password);
this.statement = this.connection.createStatement();
JOptionPane.showMessageDialog(null, "Verbindung erfolgreich!", "Inventuri", JOptionPane.INFORMATION_MESSAGE);
return true;
}
catch (java.sql.SQLException e)
{
JOptionPane.showMessageDialog(null, "Kennwort/Username prüfen", "Inventuri", JOptionPane.INFORMATION_MESSAGE);
System.out.println(e);
return false;
}
catch (com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException e)
{
JOptionPane.showMessageDialog(null, "Standardschma nicht gefunden", "Inventuri", JOptionPane.INFORMATION_MESSAGE);
System.out.println(e);
return false;
}
catch (com.mysql.jdbc.exceptions.jdbc4.CommunicationsException e)
{
JOptionPane.showMessageDialog(null, "Keine Datenbank auf angegebener IP", "Inventuri", JOptionPane.INFORMATION_MESSAGE);
System.out.println(e);
return false;
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, "Verbindung fehlgeschlagen!", "Inventuri", JOptionPane.INFORMATION_MESSAGE);
System.out.println(e);
return false;
}
Jetzt bekomme ich aber folgenden Fehler:
layout1.java:40:5: exception com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException has already been caught
catch (com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException e)
^
layout1.java:46:5: exception com.mysql.jdbc.exceptions.jdbc4.CommunicationsException has already been caught
catch (com.mysql.jdbc.exceptions.jdbc4.CommunicationsException e)
Fange ich etwa alle SQL Exceptions mit catch (java.sql.SQLException e) ab?? Wenn das so ist, kann mir dann jemand sagen wie ich genauer unterscheiden kann?
Danke
Gruß
Andreas