https://ideas.creativecasinoties.com/post/compile-time-vs-run-time-exceptions-in-java-94h6z5