Validation 如何验证触发器中的字段类型?

Validation 如何验证触发器中的字段类型?,validation,triggers,salesforce,apex-code,Validation,Triggers,Salesforce,Apex Code,我有一个触发器,可以在Lead(更新后)上触发。我们有一个名为Finance的对象,它存储关于每个lead的一些财务信息。当触发器触发时,它会将某些字段的任何更新推送到财务记录中。我写的东西非常有用,除非用户决定输入无效的电子邮件,或者记录所有者处于非活动状态。抛出了一个APEX错误,对大多数用户来说这看起来像胡言乱语,有点吓人 我想做的是在我的触发器中检查电子邮件是否有效,这样用户就不会收到令人困惑的错误。如何检查字段的内容是否为有效类型?我不想使用某种类型的正则表达式,因为还有几个其他字段我

我有一个触发器,可以在Lead(更新后)上触发
。我们有一个名为Finance的对象,它存储关于每个lead的一些财务信息。当触发器触发时,它会将某些字段的任何更新推送到财务记录中。我写的东西非常有用,除非用户决定输入无效的电子邮件,或者记录所有者处于非活动状态。抛出了一个APEX错误,对大多数用户来说这看起来像胡言乱语,有点吓人

我想做的是在我的触发器中检查电子邮件是否有效,这样用户就不会收到令人困惑的错误。如何检查字段的内容是否为有效类型?我不想使用某种类型的正则表达式,因为还有几个其他字段我想应用这个方法,我不想维护一个正则表达式列表


有什么想法吗?

您可以捕获触发器中的验证错误:

try {
    upsert financeRecord;
} catch (Exception e) {
    // do whatever you'd like to on an exception here
}

因此,我目前正在更新6个字段。如果其中两个字段的数据格式不正确,
e
是否包含这两个字段异常的详细信息,还是仅包含它遇到的第一个问题?是否有显示自定义错误的方法?我已经对自定义错误进行了一些搜索,但没有找到任何有用的信息。
e
将只保存第一个异常的信息。您可以在页面上显示错误。如果希望错误包含默认消息,请添加
ApexPages.addMessages(e)添加到控制器,并将
标记添加到页面。否则,您总是可以将Exception类子类化,并抛出该类而不是默认异常。