仅捕获验证规则中的错误消息并显示在VF页面中?

Pra*_*ady 0 salesforce visualforce

我已经设置了一些验证规则,并且我有一个使用此对象的VF页面.我能够捕获验证异常并将其显示在VF页面上.问题在于它将消息显示为

   " Upsert Failed : First exception on row 0: first error;

     FIELD_CUSTOM_VALIDATION_EXCEPTION Quantity cannot be empty
Run Code Online (Sandbox Code Playgroud)

有没有办法我可以在验证规则"数量不能为空"中捕获错误消息?

谢谢

Woo*_*e88 6

不幸的是,Ralph的帖子并不是100%正确(请参阅Prady的评论,它不适用于页面顶部验证错误),所以我写这个答案来清除.

  1. <apex:pageMessages/>标记添加 到您的页面
  2. 用try catch封装你的DML语句,如下所示:
try{

update account; //or anything else

} catch(System.DmlException e) {
   ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, e.getDmlMessage(0)));
}
Run Code Online (Sandbox Code Playgroud)

这将打印语句引起的第一个DML错误,这通常是您想要的.您也可以尝试e.getMessage(),但这将显示Update failed. First exception on row 0 with id 001L000000QgmomIAB; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION非用户友好的其他信息(如等).优点e.getDmlMessage是,当错误由验证规则引起时,它仅打印验证规则.