If you define a function with the
abort argument, your function will abort as soon as an error is detected. Is there any case where this is not what you'd want?
Even if your function needs to perform some final cleanup, I'd expect using
finally in combination with
abort would be the best practice, e.g.
function! Foo() abort call s:make_mess() try call s:might_fail() finally call s:cleanup() endtry endfunction
Is there any case where you'd actually want non-abort behavior?