Palm Programmer's Laboratory
Palm OS Programmer's Companion Volume I/15-2
15-2 エラーマネージャマクロの使用
エラー表示のためのエラーマネージャコールは、実際には条件に従ってプログラムに組み込まれるコンパイラマクロです。ほとんどの呼び出しはエラー表示を行なう場合にtrueを行なう指定する真偽値と、その場合に表示するテキストメッセージのポインタを指定します。
通常、この真偽値パラメータはエラーが発生していれば trueになるようなインラインの条件式になります。結果としてエラーチェックをオフにした場合、エラー条件を評価する式とメッセージテキストの両方はコンパイルコードから除去されます。ErrFatalDisplayIf と ErrDisplay はどちらでも使用できますが、ErrFatalDisplayIf を使用した方がコードが簡潔になります。
例えば、ソースコードが以下のようになっているとします。
result = DoSomething(); ErrFatalDisplayIf (result < 0, "unexpected result from DoSomething");
エラーチェックが有効になっている場合、このコードは DoSomething( ) の結果がゼロ未満だった場合にエラーアラートを表示します。エラーメッセージそのものに加え、このアラートにはエラーマネージャをコールしたソースコードのファイル名と行番号も表示されます。エラーチェックをオフにすることにより、err < 0 といった評価式とエラーメッセージテキストの両方がコンパイルコードから除去されます。
同じことを、以下のコードでも実現することができます。
result = DoSomething(); #if ERROR_CHECK_LEVEL != ERROR_CHECK_NONE if (result < 0) ErrDisplay ("unexpected result from DoSomething"); #endif
しかし、この方法は単純に ErrFatalDisplayIf をコールするのと比較して長い上に余計な作業を必要とします。その上、ソースコードを後から理解するのも困難になります。