<div dir="ltr">By the way, you can write a helper for immediate handling of errors:<div><br></div><div>public func handle&lt;T&gt;(@autoclosure body: () throws -&gt; T, errorHandler: (ErrorType) -&gt; ()) -&gt; T? {</div><div>    do {</div><div>        return try body()</div><div>    } catch e {</div><div>        errorHandler(e)</div><div>        return nil</div><div>    }</div><div>}</div><div><br></div><div>func dangerousMethod() throws -&gt; Int { /*...*/ }</div><div><br></div><div>let result: Int? = handle(try dangerousMethod()) { /*...*/ }</div><div>result ?? 0</div><div><br></div><div>guard let result = handle(try dangerousMethod(), log) {</div><div>    return</div><div>}</div></div>