Using Swift’s defer keyword within async and throwing contexts

How Swift’s defer keyword can be incredibly useful when working with code scopes that have multiple exit points, such as throwing or async functions.