fun toString(): String
(source)
Returns first getLocalizedMessage and then the qualified name of this exception.
Which has the effect that printStackTrace will show first the error message and then stacktrace including qualified name - resulting in a tidier report 😊
One unwanted effect, we show the qualified name even if someone has chosen the following for the gradle runner showExceptions=true, showStacktrace=false => however, I think that's fine.