What will happen when you compile and run the following code snippet?

public class X
{
    public static void main(final String[] args) {
        try{
            int i = (0x80000000 >> 31) + 1;
            i = i / i;
        }
        catch (RuntimeException e) {
            System.out.println("RuntimeException");
            System.exit(0);
        }
        finally {
            System.out.println("finally");
        }
    }
}
A) Compiler error.
B) No output.
C) Output: RuntimeException
D) Output: finally
E) Output: RuntimeException finally