英語版
このページの英語版を見る

core.exception

例外モジュールは、すべてのシステムレベルの例外を定義し、システムレベルのエラー処理を変更するメカニズムを提供する。 システムレベルのエラー処理を変更するメカニズムを提供する。
Authors:
Sean Kelly and Jonathan M Davis
class RangeError: object.Error;
範囲エラー時にスローされる。
class ArrayIndexError: core.exception.RangeError;
範囲外の配列インデックスにアクセスしたときにスローされる。
const size_t index;
配列へのインデックス
const size_t length;
インデックス付き配列の長さ。
class ArraySliceError: core.exception.RangeError;
範囲外の配列スライスが作成されたときにスローされる。
const size_t lower;
スライスに渡される下界/上界: array[lower .. upper]
const size_t upper;
スライスに渡される下限/上限: array[lower .. upper]
const size_t length;
スライスされた配列の長さ
class AssertError: object.Error;
assertエラー時にスローされる。
class FinalizeError: object.Error;
finalizeエラー時にスローされる。
class OutOfMemoryError: object.Error;
メモリ不足エラー時にスローされる。
class InvalidMemoryOperationError: object.Error;
無効なメモリ操作時にスローされる。
無効なメモリ操作エラーは、ガベージコレクタが確実に処理できない操作を検出した場合に発生する。 ガベージコレクタが確実に処理できない操作を検出した場合に発生する。デフォルトの D GCはリエントラントではない。 ガベージコレクションサイクル中に呼び出されたファイナライザ内で行われたアロケーションが原因で発生する可能性がある。
class ForkError: object.Error;
コンフィギュレーション・エラーでスローされる。
class SwitchError: object.Error;
スイッチ・エラーでスローされる。
class UnicodeException: object.Exception;
ユニコード変換エラーでスローされる。
alias AssertHandler = void function(string file, ulong line, string msg) nothrow;

nothrow @nogc @property @trusted AssertHandler assertHandler();

nothrow @nogc @property @trusted void assertHandler(AssertHandler handler);
アサートハンドラを取得/設定する。nullはデフォルトのハンドラが使われることを意味する。
nothrow void onAssertError(string file = __FILE__, size_t line = __LINE__);
Dにおけるアサートエラーのコールバック。 が提供されていればそれが呼ばれ、そうでなければ AssertErrorが投げられる。 がスローされる。
Parameters:
string file このエラーを通知したファイル名。
size_t line このエラーが発生した行番号。
nothrow void onAssertErrorMsg(string file, size_t line, string msg);
Dにおけるアサートエラーのコールバック。 が提供されていればそれが呼ばれ、そうでなければ AssertErrorが投げられる。 が投げられる。
Parameters:
string file このエラーを通知したファイル名。
size_t line このエラーが発生した行番号。
string msg ユーザーが提供したエラーメッセージ。
nothrow void onUnittestErrorMsg(string file, size_t line, string msg);
Dにおけるunittestエラーのコールバック。 が提供されていればそれが呼ばれ、そうでなければエラーは に書き込まれる。
Parameters:
string file このエラーを通知したファイルの名前。
size_t line エラーが発生した行番号。
string msg ユーザーが指定したエラーメッセージ。
pure nothrow @nogc @trusted noreturn onRangeError(string file = __FILE__, size_t line = __LINE__);
Dにおける一般的な配列境界エラーのコールバック。 RangeErrorがスローされる。
Parameters:
string file このエラーを通知したファイルの名前。
size_t line このエラーが発生した行番号。
Throws:
pure nothrow @nogc @trusted noreturn onArraySliceError(size_t lower = 0, size_t upper = 0, size_t length = 0, string file = __FILE__, size_t line = __LINE__);
Dにおける配列スライス境界外エラーのコールバック。
Parameters:
size_t lower 渡されたスライスのインデックスの下界。
size_t upper スライスに渡されたインデックスの上限、またはスライスでない場合はインデックス。
size_t length 配列の長さ
string file このエラーを通知したファイル名。
size_t line このエラーが発生した行番号。
pure nothrow @nogc @trusted noreturn onArrayIndexError(size_t index = 0, size_t length = 0, string file = __FILE__, size_t line = __LINE__);
D.NETの配列インデックスが範囲外であった場合のコールバック。
Parameters:
size_t index 配列のインデックス
size_t length 配列の長さ
string file このエラーを通知したファイル名。
size_t line このエラーが発生した行番号。
nothrow @trusted noreturn onFinalizeError(TypeInfo info, Throwable e, string file = __FILE__, size_t line = __LINE__);
Dのファイナライズエラーのコールバック。 FinalizeErrorがスローされる。
Parameters:
TypeInfo info ファイナライズに失敗したオブジェクトの TypeInfo インスタンス。
Throwable e ファイナライズ中にスローされた例外。
string file このエラーを通知したファイルの名前。
size_t line このエラーが発生した行番号。
pure nothrow @nogc @trusted noreturn onOutOfMemoryError(void* pretend_sideffect = null, string file = __FILE__, size_t line = __LINE__);
Dのメモリ不足エラーのコールバック。 OutOfMemoryErrorがスローされる。 がスローされる。
pure nothrow @nogc @trusted noreturn onInvalidMemoryOperationError(void* pretend_sideffect = null, string file = __FILE__, size_t line = __LINE__);
Dにおける無効なメモリー操作のコールバック。 InvalidMemoryOperationErrorがスローされる。
pure nothrow @nogc @trusted noreturn onForkError(string file = __FILE__, size_t line = __LINE__);
Dでフォークに失敗した場合のエラー用コールバック。 ForkErrorがスローされる。
Parameters:
string file このエラーを通知したファイル名。
size_t line このエラーが発生した行番号。
pure @safe noreturn onUnicodeError(string msg, size_t idx, string file = __FILE__, size_t line = __LINE__);
Dのユニコード・エラーのコールバック。 UnicodeExceptionがスローされる。
Parameters:
string msg エラーに関する情報。
size_t idx このエラーが検出された文字列インデックス。
string file このエラーを通知したファイル名。
size_t line このエラーが発生した行番号。
void _d_assertp(immutable(char)* file, uint line);
これらの関数は、このライブラリーにリンクされたDプログラムに対して定義されなければならない。 に対して定義されていなければならない。
これらの関数呼び出しはコンパイラによって生成され、オブジェクトコードに挿入される。 に挿入される。
void _d_assert_msg(string msg, string file, uint line);
これらの関数は、このライブラリにリンクされたDプログラムに対して定義されなければならない。 に定義されていなければならない。
これらの関数呼び出しはコンパイラによって生成され、オブジェクト・コードに挿入される。 に挿入される。
void _d_assert(string file, uint line);
これらの関数は、このライブラリにリンクされたDプログラムに対して定義されなければならない。 に定義されていなければならない。
これらの関数呼び出しはコンパイラによって生成され、オブジェクト・コードに挿入される。 に挿入される。
void _d_unittestp(immutable(char)* file, uint line);
これらの関数は、このライブラリにリンクされたDプログラムに対して定義されなければならない。 に定義されていなければならない。
これらの関数呼び出しはコンパイラによって生成され、オブジェクト・コードに挿入される。 に挿入される。
void _d_unittest_msg(string msg, string file, uint line);
これらの関数は、このライブラリにリンクされたDプログラムに対して定義されなければならない。 に定義されていなければならない。
これらの関数呼び出しはコンパイラによって生成され、オブジェクト・コードに挿入される。 に挿入される。
void _d_unittest(string file, uint line);
これらの関数は、このライブラリにリンクされたDプログラムに対して定義されなければならない。 に定義されていなければならない。
これらの関数呼び出しはコンパイラによって生成され、オブジェクト・コードに挿入される。 に挿入される。
void _d_arrayboundsp(immutable(char*) file, uint line);
無効な配列のインデックス/スライスまたは連想配列のキーにアクセスしたときに呼び出される。
これらの関数は、本ライブラリにリンクされたDプログラムに対して定義されなければならない。 に定義されていなければならない。
これらの関数呼び出しはコンパイラによって生成され、オブジェクトコードに挿入される。 に挿入される。
void _d_arraybounds(string file, uint line);
同上
これらの関数は、このライブラリーにリンクされたDプログラムに対して定義されなければならない。 に対して定義されなければならない。
これらの関数呼び出しはコンパイラによって生成され、オブジェクトコードに挿入される。 に挿入される。
void _d_arraybounds_slicep(immutable(char*) file, uint line, size_t lower, size_t upper, size_t length);
配列の範囲外のスライスが作成されたときに呼び出される。
これらの関数は、このライブラリにリンクされたDプログラムに対して定義されなければならない。 に対して定義されていなければならない。
これらの関数呼び出しはコンパイラによって生成され、オブジェクトコードに挿入される。 に挿入される。
void _d_arraybounds_slice(string file, uint line, size_t lower, size_t upper, size_t length);
同上
これらの関数は、このライブラリーにリンクされたDプログラムに対して定義されなければならない。 に対して定義されなければならない。
これらの関数呼び出しはコンパイラによって生成され、オブジェクトコードに挿入される。 に挿入される。
void _d_arraybounds_indexp(immutable(char*) file, uint line, size_t index, size_t length);
範囲外の配列インデックスにアクセスしたときに呼び出される
これらの関数は、このライブラリにリンクされたDプログラムに対して定義されなければならない。 に定義されていなければならない。
これらの関数呼び出しはコンパイラによって生成され、オブジェクトコードに挿入される。 に挿入される。
void _d_arraybounds_index(string file, uint line, size_t index, size_t length);
同上
これらの関数は、このライブラリーにリンクされたDプログラムに対して定義されなければならない。 に対して定義されなければならない。
これらの関数呼び出しはコンパイラによって生成され、オブジェクトコードに挿入される。 に挿入される。