As a sysadmin, not developer, I hate Java almost as much as Windows. The error messages Java apps produce are like coded messages that you have to decipher.
I.E. Instead of "<DOMAIN> TLS Handshake failed" it will be something like "ERROR: PKIX failed". So now I have to figure out that PKIX is referring to PKI and it would make too much sense to provide the domain that failed. Instead I have to play the guessing game.
I hate when tools only produce generic "TLS Handshake failed" instead of saying why exactly it failed, where is the problem.
Tell your developers to start logging the exception, not just a hard-coded error message.
So your issue isn't with Java, just with shit error messages and devs clearing the exception stack.
Did you mistype Go?
Java has proper error messages with a full stack trace that tells the whole story.
Of course individual developers may lazy out on writing useful error messages, but that's hardly a Java issue.
Meanwhile in Go you can be happy to have any error message at all. And then you can hope it's a unique string you can grep in a codebase. Where you only may find a line of code you could have arrived from many different places.