What happen when you compile and run the following program:

public class X
{
    public Object clone() throws CloneNotSupportedException
    {
        return super.clone();
    }

    public static void main(String argv[]) throws CloneNotSupportedException    
    {
        new X().clone();
    }
}

A) Compilation error
B) Exception: CloneNotSupportedException
C) Exception: CloneWhenNoDefaultConstructorException
D) Exception: UnsupportedMethodException
E) No output