утверждения
Импорты
- miscdollars
Процедуры
proc raiseAssert(msg: string) {...}{.noinline, noreturn, nosinks, raises: [], tags: [].}- Исходный код Изменить
proc failedAssertImpl(msg: string) {...}{.raises: [], tags: [].}- Исходный код Изменить
Шаблоны
template assert(cond: untyped; msg = "")
-
Вызывает
AssertionDefectсmsgеслиcondложно. Обратите внимание, чтоAssertionDefectскрыто от системы эффектов, поэтому оно не генерирует{.raises: [AssertionDefect].}. Это исключение должно быть перехвачено только фреймворками для тестирования модулей.Компилятор может вообще не генерировать код для
assertесли это рекомендовано с помощью-d:dangerили--assertions:offпереключателей командной строки.static: assert 1 == 9, "This assertion generates code when not built with -d:danger or --assertions:off"
Исходный код Изменить template doAssert(cond: untyped; msg = "")
- Аналогично
assert, но всегда включено независимо от--assertions.static: doAssert 1 == 9, "This assertion generates code when built with/without -d:danger or --assertions:off"
Исходный код Изменить template onFailedAssert(msg, code: untyped): untyped {...}{.dirty.}- Устанавливает обработчик сбоя утверждения, который перехватит любые операторы assert, следующие за
onFailedAssertв текущем объеме модуля.# module-wide policy to change the failed assert # exception type in order to include a lineinfo onFailedAssert(msg): var e = new(TMyError) e.msg = msg e.lineinfo = instantiationInfo(-2) raise e
Исходный код Изменить template doAssertRaises(exception: typedesc; code: untyped)
- Вызывает
AssertionDefectесли указанноеcodeне вызывает указанное исключение. Пример:doAssertRaises(ValueError): raise newException(ValueError, "Hello World")
Исходный код Изменить
© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/assertions.html