How to show only extracted error message from Custom Validation on a Visualforce Page?

kshitij picture kshitij · Jul 23, 2012 · Viewed 16.6k times · Source

I have added few custom validations using Configuration for an object. I am inserting that object record through visualforce page. I have added <apex:pageMessages/> on my visualforce page. I have also written code block for catching the exception and to show the error message ob VF page. Please find code block below :

catch(DMLException excp)
{
    ApexPages.Message msg = new ApexPages.Message(Apexpages.Severity.ERROR, excp.getMessage() );
    ApexPages.addMessage(msg);  
    return null;                            
} 

Still I am not able to get only error message from the custom validation. It shows me error like below :

Insert failed. First exception on row 0; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, error_message_from_custom_validation_comes_here

Is there any solution for this?

Answer

Greg Grinberg picture Greg Grinberg · Jul 23, 2012

You need to get the DML message like so:

ApexPages.Message msg = new ApexPages.Message(Apexpages.Severity.ERROR, excp.getdmlMessage(0) );
ApexPages.addMessage(msg);

Using Exception Messages