フレームワークエラー発生時のカスタムメッセージフォーマッタ
概要:カスタムエラーメッセージフォーマッタについて
throwFwErrorで送出されるエラーにはHuman-readableなメッセージが含まれる。
通常はh5.u.str.format()によってフォーマットされるが、
場合によってはカスタムフォーマットを行いたい場合がある。
(例:DataModelにおけるディスクリプタ不正はエラーコードが同じで
detail内に詳細が入っているので、これをコンソールに出力したい)
そこで、メッセージフォーマッタをカスタム定義できるようにする。
動作仕様
throwFwError()が呼ばれたとき、
エラーコードに対応するカスタムフォーマッタがある場合はその関数を呼ぶ。
戻り値が文字列の場合は、それをエラーメッセージとして例外をスローする。
戻り値がnull/undefinedの場合は、通常のフォーマッタでフォーマットする。
従って、空文字にしたい場合はnullではなく空文字を返すこと。
カスタムフォーマッタが満たすべき仕様
カスタムフォーマッタは、特定のエラーコードに対応する、
以下の引数を取る関数として実装する必要がある。
戻り値がnull(またはundefined)の場合は通常のフォーマッタによりフォーマットされる。
各引数(msgを含む)はnullである可能性があるので注意。
msgは未フォーマットの文字列(プレースホルダを含んでいる)なので、
フォーマットが必要な場合は自分でフォーマットすること。
return customMessage; //文字列型
}
カスタムフォーマッタの登録方法
addFwErrorCustomFormatter(errorCode, formatter) を呼ぶ。
この関数はscope-globalで定義されている。