Menu

Стражи области видимости

Стражи области видимости позволяют исполнять выражения во время выхода из текущего блока, при определённых условиях:

  • scope(exit) всегда вызывается
  • scope(success) вызывается при отсутствии исключений
  • scope(failure) вызывается, если до выхода из блока выбрасывается исключение

Использование стражей области видимости делает код более явным, и позволяет поместить занятие и освобождение ресурсов непосредственно рядом друг с другом. Эти маленькие помощники так же усиливают безопасность, позволяя удостовериться, что определённый код всегда будет выполнен, вне зависимости от ветки исполнения.

В D scope фактически заменяет идиому RAII, применяемую в C++ и часто используемую при реализации специальных стражей для определённых типов ресурсов.

Стражи области видимости вызываются в порядке, обратном их определению.

Подробнее

rdmd playground.d