Hallo
also ich habe eine eigene Exception.
In einer Bean gibt es eine Methode, die diese wirft.
und im Control einen Block, der diese Methode aufruft.
Mein Problem ist nun, dass obwohl in der Bean jede Exception eine CanNotCreateEntityException wirft, diese im Control nicht geworfen wird und nur der catch-Block der Standard-Exception aufgerufen wird. Warum?
also ich habe eine eigene Exception.
Code:
import java.io.Serializable;
public class CanNotCreateEntityException extends DatabaseException implements Serializable {
private static final long serialVersionUID = 7267419933728670364L;
public CanNotCreateEntityException(){
super();
}
public CanNotCreateEntityException(String message) {
super(message);
}
public CanNotCreateEntityException(Throwable cause) {
super(cause);
}
public CanNotCreateEntityException(String message, Throwable cause) {
super(message, cause);
}
}
In einer Bean gibt es eine Methode, die diese wirft.
Code:
@Override
public User addUser(Person p, String name, String pass) throws CanNotCreateEntityException{
try{
User u = new User(p, name, pass);
em.persist(u);
return u;
}
catch(Exception cnc){
throw new CanNotCreateEntityException("Benutzer-Datensatz konnte nicht angelegt werden. " + cnc.getMessage());
}
}
und im Control einen Block, der diese Methode aufruft.
Code:
try {
bean.addUser(new Person("Anonym", "Anonymus"), "user", "password");
}
catch (CanNotCreateEntityException e) {
JOptionPane.showMessageDialog(log.getContentPane(), "Die Person konnte nicht hinzugefügt werden.");
}
catch (Exception e){
JOptionPane.showMessageDialog(log.getContentPane(), "TEST");
}
Mein Problem ist nun, dass obwohl in der Bean jede Exception eine CanNotCreateEntityException wirft, diese im Control nicht geworfen wird und nur der catch-Block der Standard-Exception aufgerufen wird. Warum?