Spec-Zone.ru › D

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API