m17n ライブラリ 1.8.4
|
m17n ライブラリのエラー処理. [詳解]
列挙型 | |
enum | MErrorCode { MERROR_NONE , MERROR_OBJECT , MERROR_SYMBOL , MERROR_MTEXT , MERROR_TEXTPROP , MERROR_CHAR , MERROR_CHARTABLE , MERROR_CHARSET , MERROR_CODING , MERROR_RANGE , MERROR_LANGUAGE , MERROR_LOCALE , MERROR_PLIST , MERROR_MISC , MERROR_WIN , MERROR_X , MERROR_FRAME , MERROR_FACE , MERROR_DRAW , MERROR_FLT , MERROR_FONT , MERROR_FONTSET , MERROR_FONT_OTF , MERROR_FONT_X , MERROR_FONT_FT , MERROR_IM , MERROR_DB , MERROR_IO , MERROR_DEBUG , MERROR_MEMORY , MERROR_GD , MERROR_MAX } |
m17n ライブラリエラーコードの列挙. [詳解] | |
変数 | |
int | merror_code |
m17n ライブラリのエラーコードを保持する外部変数. | |
void(* | m17n_memory_full_handler )(enum MErrorCode err) |
メモリ割当てエラーハンドラ. | |
m17n ライブラリのエラー処理.
m17n ライブラリの関数では、2つの種類のエラーが起こり得る。
一つは引数のエラーである。 ライブラリの関数が妥当でない引数とともに呼ばれた場合、その関数はエラーを意味する値を返し、同時に外部変数 merror_code にゼロでない整数をセットする。
もう一つの種類はメモリ割当てエラーである。 システムが必要な量のメモリを割当てることができない場合、ライブラリ関数は外部変数 m17n_memory_full_handler
が指す関数を呼ぶ。デフォルトでは、関数 default_error_handle() を指しており、この関数は単に exit ()
を呼ぶ。
enum MErrorCode |
m17n ライブラリエラーコードの列挙.
m17n ライブラリエラーコードの列挙
ライブラリの関数が妥当でない引数とともに呼ばれた場合には、変数 merror_code をこれらの値のどれかにセットする。すべてのエラーコードは正の整数である。
メモリ割当てエラーの際には、外部変数 m17n_memory_full_handler の指す関数が、これらの値のうちのどれかを引数として呼ばれる。
int merror_code |
m17n ライブラリのエラーコードを保持する外部変数.
外部変数 merror_code は、m17n ライブラリのエラーコードを保持する。 ライブラリ関数が妥当でない引数とともに呼ばれた際には、この変数を enum
MErrorCode の一つにセットする。
この変数の初期値は 0 である。
void(* m17n_memory_full_handler) (enum MErrorCode err) | ( | enum MErrorCode | err | ) |
メモリ割当てエラーハンドラ.
変数 m17n_memory_full_handler は、ライブラリ関数がメモリ割当てに失敗した際に呼ぶべき関数へのポインタである。 err は enum
MErrorCode のうちのいずれかであり、どのライブラリ関数でエラーが起ったかを示す。
初期設定では、この変数は単に exit()
を err を引数として呼ぶ関数を指している。
これとは異なるエラー処理を必要とするアプリケーションは、この変数を適当な関数に設定することで、目的を達成できる。