Exception Handling is the preferred method for dealing with errors. Error code return values can be obliviously ignored by developers using your functions. Exceptions force them to take notice. It's definitely worth learning about.
When you wrote the code in your question, you probably assumed that it would be called like this:
String message = Test();
// process the message for errors.
A lot of developers will just bypass processing the message, or even call your function like this:
Test();
// go about your business, happily ignoring the error message
If your code throws an exception instead, it cannot be ignored. A developer has to at least acknowledge that an exception is thrown by putting a try block around your function call. At that point they're forced to do something with it.