try & catch / repeating code - DRY

Meta jared771 at gmail.com
Wed May 23 01:48:30 UTC 2018


On Tuesday, 22 May 2018 at 18:20:43 UTC, Robert M. Münch wrote:
> I see that I'm writing
>
> try {
> ... different code ...
> } catch (myException e) {
> 	... same handling code ...
> }
>
> over and over again.
>
> Of course I can put the exception handling code into a function 
> to not duplicate it. However, I still need to write this 
> construct over and over again. Is there a way to handle it more 
> generic? Like:
>
> ??? (... code ...);
>
> or
>
> ??? { ... code ...};
>
> Where ??? would do the try and re-use the exception handling 
> code everytime? I hope this is understandable.

Have you looked at std.exception.ifThrown? You could define a 
handler function and pass it to ifThrown for each expression that 
may throw. If it's a statement, I believe you could wrap it in a 
lambda which is immediately called, then append 
.ifThrown(handler).


More information about the Digitalmars-d-learn mailing list