開発者ブログ
hifive Developer Channelへようこそ! » 開発情報(hifive開発者向けリソース) » フレームワークエラー発生時のカスタムメッセージフォーマッタ

フレームワークエラー発生時のカスタムメッセージフォーマッタ

Last modified by simdy on 2013/02/14, 19:26

概要:カスタムエラーメッセージフォーマッタについて

throwFwErrorで送出されるエラーにはHuman-readableなメッセージが含まれる。
通常はh5.u.str.format()によってフォーマットされるが、
場合によってはカスタムフォーマットを行いたい場合がある。
(例:DataModelにおけるディスクリプタ不正はエラーコードが同じで
detail内に詳細が入っているので、これをコンソールに出力したい)

そこで、メッセージフォーマッタをカスタム定義できるようにする。

動作仕様

throwFwError()が呼ばれたとき、
エラーコードに対応するカスタムフォーマッタがある場合はその関数を呼ぶ。
戻り値が文字列の場合は、それをエラーメッセージとして例外をスローする。
戻り値がnull/undefinedの場合は、通常のフォーマッタでフォーマットする。
従って、空文字にしたい場合はnullではなく空文字を返すこと。

カスタムフォーマッタが満たすべき仕様

カスタムフォーマッタは、特定のエラーコードに対応する、
以下の引数を取る関数として実装する必要がある。
戻り値がnull(またはundefined)の場合は通常のフォーマッタによりフォーマットされる。
各引数(msgを含む)はnullである可能性があるので注意。
msgは未フォーマットの文字列(プレースホルダを含んでいる)なので、
フォーマットが必要な場合は自分でフォーマットすること。

function customFormatter(code, msg, msgParam, detail) {
   return customMessage; //文字列型
}

カスタムフォーマッタの登録方法

addFwErrorCustomFormatter(errorCode, formatter) を呼ぶ。
この関数はscope-globalで定義されている。


Copyright (C) 2012-2017 NS Solutions Corporation, All Rights Reserved.