You'd need to get the code to compile before ever being able to see a RuntimeException, wouldn't you
As for the initialization of the local variable "a", you are correct to say that it never will be initialized, but it doesn't matter, because it is never used.
As soon as you try to access the variable "a" inside the display() method, the compiler will let you know that variable "a" still needs to be initialized.
Try it.
Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.