Using scope guards makes code much cleaner and allows to place resource allocation and clean up code next to each other. These little helpers also improve safety because they make sure certain cleanup code is always called independent of which paths are actually taken at runtime.
The D scope feature effectively replaces the RAII idiom used in C++ which often leads to special scope guards objects for special resources.
Scope guards are called in the reverse order they are defined.