Java 8+ (до 12) не имеет такого подхода (возможно, в будущем появятся некоторые изменения).
Со стороны чистой Java вы можете использовать assert :
assert :
В случае неудачи подтверждения выбрасывается AssertionError
с
.
Однако, вы должны быть уверены, что это активируется добавлением атрибута -ea
в JVM .
Утверждения добавляют более значимую информацию для неудачных дел.
В качестве альтернативы вы можете использовать apache-commons-lang
Validate class:
Validate.notNull(i, "this parameter can't be null")
Validate.isTrue(i > 0, "The value must be greater than zero: %d", i);
Средство выделения могло добавить регистрирующиеся операторы прежде и после конструкции/разрушения или любых других побочных эффектов, которые это хотело сделать.
Конечно, фактическая конструкция должна произойти путем называния размещения новым и деструктор, но это не говорит в своде правил, что ничего иного не должно происходить в создать/уничтожить функциях
Это должно только скрыть детали выделения в методе. т.е. мы обеспечиваем API для конструкции и разрушения, в будущем мы можем изменить реализацию. Теперь мы используем размещение, новое для выделения памяти в будущем, если мы хотим изменить выделение, мы просто должны изменить эти два метода.