Refactor how exception reporting works (so it is overridable)