Re: How can I handle validation exception?

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Wed Mar 11 2009 - 04:30:21 EDT

  • Next message: Νίκος Παράσχου: "Re: How can I handle validation exception?"

    > Is the following correct?

    Looks about right. Also there's a few pre-canned classes implementing
    ValidationFailure in the org.apache.cayenne.validation package that
    can be used to build failures.

    > Or how can I retrieve the error message
    > from the validationResult when a ValidationException is thrown

    http://cayenne.apache.org/doc/api/org/apache/cayenne/validation/ValidationResult.html

    Use 'getFailures()' to get a list of failures, and analyze them one by
    one using ValidationFailure methods.

    Andrus

    On Mar 11, 2009, at 9:36 AM, Νίκος Παράσχου wrote:

    > Thank you Andrus,
    >
    > Yes, I do not throw the exception myself. But, how am I going to
    > handle
    > the exception thrown by Cayenne? Or how can I retrieve the error
    > message
    > from the validationResult when a ValidationException is thrown, so
    > that
    > I can print it in the GUI?
    >
    > Is the following correct?
    >
    > ..verride
    > protected void validateForSave(ValidationResult validationResult) {
    > super.validateForSave(validationResult);
    >
    > if(getCompanyName().equalsIgnoreCase("")) {
    >
    > validationResult.addFailure(new ValidationFailure() {
    >
    > ..verride
    > public Object getSource() {
    > return this;
    > }
    >
    > ..verride
    > public Object getError() {
    > return Company.CNAME_PROPERTY;
    > }
    >
    > ..verride
    > public String getDescription() {
    > return "My error message";
    > }
    > });
    > }
    > }
    >
    > Nikos
    >
    > Στις 10-03-2009, ημέρα Τρι, και ώρα 18:16 +0200, ο/
    > η Andrus Adamchik
    > έγραψε:
    >> The code example looks about right. However this is probably what's
    >> wrong: "When a specific condition is not met, a ValidationException
    >> is
    >> thrown.". You should not throw the exception yourself. Just add an
    >> error to the validationResult, and let Cayenne throw it later.
    >>
    >> Andrus
    >>
    >>
    >> On Mar 10, 2009, at 5:03 PM, Νίκος Παράσχου wrote:
    >>
    >>> Hello,
    >>>
    >>> I implemented validateForSave(ValidationResult validationResult) in
    >>> one
    >>> of my ObjEntities. When a specific condition is not met, a
    >>> ValidationException is thrown.
    >>>
    >>> How can I handle this ValidationException?
    >>>
    >>> The following doesn't work (I get: ValidationException is not thrown
    >>> anywhere inside block try{}):
    >>>
    >>> try {
    >>> mycontext.commit();
    >>> }
    >>> catch(ValidationException vex) {
    >>> ...
    >>> }
    >>>
    >>> Thank you,
    >>> Nikos
    >>>
    >>>
    >>>
    >>
    >
    >



    This archive was generated by hypermail 2.0.0 : Wed Mar 11 2009 - 04:31:01 EDT