Use `rethrow(e)` rather than `showerror`.
But FYI: what's going on behind the scenes is actually quite subtle and
nowhere close to obvious. There's a certain amount of magic that gets
performed to display that long, helpful message: see replutil.jl, and the
`showerror` method for `DomainError`. The long error message is not generated
at the call-site because doing so (IIRC) would have a deleterious effect on the
compiler's ability to inline, and consequently be a big hit on performance.
`rethrow` will include the backtrace from the offending line, allowing the
normal error message to appear.
--Tim