Почему мое ConstraintViolationException не перехватывается? - PullRequest
2 голосов
/ 23 августа 2011

Я использую Play Framework и имею следующий код:

import org.hibernate.exception.ConstraintViolationException;

...
public class AuthorService extends Controller

    ...

    public static void delete(Long id)  
    {
        Author author = Author.findById(id);    
        if(author == null) {
            renderError("Attempt to delete author has failed! The entry could not be found.", 500);
        }
        try {
            author.delete();
        } catch (ConstraintViolationException e) {
            renderError("A foreign key violation exception was thrown trying to delete <b>" + author.name + "</b>!", 500);
        }
        renderGSON(jobDescription);
    }

    ...
}

Я не использую каскад для удаления записи, так как для сторонних элементов должна быть установлена ​​запись, выбраннаяпользователя позже.

Моя проблема в том, что ContraintViolationException никогда не перехватывается, но моя среда IDE сообщает об этом?Почему это?Я хочу поймать это, разобраться с этим и продолжить приложение как обычно.

Ответы [ 2 ]

2 голосов
/ 23 августа 2011

Поскольку в Play в соответствии с кодом (удаление вызовов _delete) этот метод генерирует только javax.persistence.PersistenceException и RuntimeException.

0 голосов
/ 23 августа 2011

Я не знаком с игрой, но исключения ограничения могут возникать, когда ваш сеанс сбрасывается (в конце транзакции, обычно при отправке).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...