https://entri.app/blog/how-to-use-exceptions-effectively-in-java/
How to Use Exceptions Effectively in Java