Deep dive into how JVM exceptions are implemented on the compiler level