core.исключение
Модуль исключений определяет все исключения системного уровня и предоставляет механизм для изменения обработки ошибок системного уровня.
- Лицензия:
- Лицензия Boost 1.0.
- Авторы:
- Шон Келлли и Джоонатан М. Дэвис
- Источник
- core/exception.d
- class RangeError: object.Error;
-
Выбрасывается при ошибке диапазона.
- class AssertError: object.Error;
-
Выбрасывается при ошибке утверждения.
- class FinalizeError: object.Error;
-
Выбрасывается при ошибке завершения.
- class OutOfMemoryError: object.Error;
-
Выбрасывается при ошибке недостатка памяти.
- class InvalidMemoryOperationError: object.Error;
-
Выбрасывается при ошибке недопустимой операции с памятью.
Ошибка недопустимой операции с памятью возникает в ситуациях, когда сборщик мусора обнаруживает операцию, которую он не может надежно обработать. Стандартный сборщик мусора D не является реентерабельным, поэтому это может произойти из-за выделения памяти внутри финализаторов, вызываемых во время цикла сбора мусора.
- 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.- Параметры:
строка fileИмя файла, который сигнализировал об этой ошибке. size_t lineНомер строки, в которой произошла эта ошибка.
- nothrow void onAssertErrorMsg(string file, size_t line, string msg);
-
Обратный вызов для ошибок утверждений в D. Если пользовательский обработчик утверждений предоставлен, он будет вызван, иначе будет выброшено исключение
AssertError.- Параметры:
строка fileИмя файла, который сигнализировал об этой ошибке. size_t lineНомер строки, в которой произошла эта ошибка. строка msgСообщение об ошибке, предоставленное пользователем.
- nothrow void onUnittestErrorMsg(string file, size_t line, string msg);
-
Обратный вызов для ошибок юнит-тестирования в D. Если пользовательский обработчик юнит-тестирования предоставлен, он будет вызван, иначе ошибка будет записана в stderr.
- Параметры:
строка fileИмя файла, который сигнализировал об этой ошибке. size_t lineНомер строки, в которой произошла эта ошибка. строка msgСообщение об ошибке, предоставленное пользователем.
- pure nothrow @nogc @trusted void onRangeError(string file = __FILE__, size_t line = __LINE__);
-
Обратный вызов для ошибок границ массивов в D. Будет выброшено исключение
RangeError.- Параметры:
строка fileИмя файла, который сигнализировал об этой ошибке. size_t lineНомер строки, в которой произошла эта ошибка.
- Выбрасывает:
-
RangeError.
- nothrow @trusted void onFinalizeError(TypeInfo info, Throwable e, string file = __FILE__, size_t line = __LINE__);
-
Обратный вызов для ошибок завершения в D. Будет выброшено исключение
FinalizeError.- Параметры:
TypeInfo infoЭкземпляр TypeInfo для объекта, который не смог завершиться. Throwable eИсключение, выброшенное во время завершения. строка fileИмя файла, который сигнализировал об этой ошибке. size_t lineНомер строки, в которой произошла эта ошибка.
- Выбрасывает:
-
FinalizeError.
- pure nothrow @nogc @trusted void onOutOfMemoryError(void* pretend_sideffect = null);
-
Обратный вызов для ошибок недостатка памяти в D. Будет выброшено исключение
OutOfMemoryError.- Выбрасывает:
-
OutOfMemoryError.
- pure nothrow @nogc @trusted void onInvalidMemoryOperationError(void* pretend_sideffect = null);
-
Обратный вызов для ошибок недопустимой операции с памятью в D. Будет выброшено исключение
InvalidMemoryOperationError.- Выбрасывает:
-
InvalidMemoryOperationError.
- pure @safe void onUnicodeError(string msg, size_t idx, string file = __FILE__, size_t line = __LINE__);
-
Обратный вызов для ошибок юникода в D. Будет выброшено исключение
UnicodeException.- Параметры:
строка msgИнформация об ошибке. size_t idxИндекс строки, где была обнаружена эта ошибка. строка fileИмя файла, который сигнализировал об этой ошибке. size_t lineНомер строки, в которой произошла эта ошибка.
- Выбрасывает:
-
UnicodeException.
- 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, связанной с этой библиотекой.
Вызовы этих функций генерируются компилятором и вставляются в объектный код.
© 1999–2021 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/core_exception.html