The handler is deprecated because DMD doesn't generate a valid call stack for _d_assert (which calls onAssertError) so it's impossible to return from the assert handler without throwing. This rendered the assert handler largely useless and after a few years of no one using it I decided to deprecate it. I'd be happy to keep the assert handler if people actually want it though, or if DMD changes its codegen. Personally, I'd like to be able to assert without throwing in some testing situations, and overriding a handler seems like an appropriate way to do this.