2012-04-10 10 views
1

私はon Lead (after update)を発動するトリガーを持っています。私たちにはFinanceというオブジェクトがあり、それぞれのリードに関する財務情報が保存されています。トリガが起動すると、特定のフィールドへの更新が金融レコードにプッシュされます。ユーザーが無効なメールを入力するか、レコードの所有者が無効でない限り、私が書いたことは素晴らしい作品です。 APEXエラーがスローされます。ほとんどのユーザーにとっては不気味で、少し怖いです。トリガーのフィールドタイプを検証するにはどうすればよいですか?

私がしたいのは、電子メールが有効かどうかにかかわらず、ユーザが混乱したエラーを受け取らないようにするかどうかをチェックすることです。フィールドのコンテンツが有効な型かどうかを確認するにはどうすればよいですか?私はこのメソッドを適用したいいくつかの他のフィールドがあるので、正規表現のリストを維持したくないので、何らかの正規表現を使用しないようにしたいと思います。

アイデア?

答えて

3

あなたのトリガーで検証エラーをキャッチすることができます:

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

だから、私は現在、6つのフィールドを更新しています。それらのうちの2つが不適切なフォーマットのデータを持っている場合、 'e'はそれらのフィールドの両方の例外に関する情報を保持していますか?カスタムエラーを表示する方法はありますか?カスタムエラーについていくつか検索しましたが、役に立たないものは見つかりませんでした。 – VictorKilo

+0

'e'は最初の例外に関する情報しか保持しません。ページにエラーを表示することができます。エラーをデフォルトのメッセージにしたい場合は、コントローラに 'ApexPages.addMessages(e);'を追加し、 ''タグをページに追加してください。それ以外の場合は、いつでもExceptionクラスをサブクラス化し、デフォルトのExceptionの代わりにそれをスローすることができます。 – barelyknown

+0

クール!助けてくれてありがとう! – VictorKilo