Well, yea, compile exceptions are caught by the compiler, and runtime exceptions are caught at runtime. But for the test, you gotta know that compile time exceptions are known as checked-exceptions (extend object Exception) and run time exceptions extend RuntimeException (who also extends the Exception). Check the java 5 documentation. You will find that Throwable is the daddy object, Exception extends Throwable and is the main object. Then you have the RuntimeException. Exceptions like NullPointerException and ArithmeticException extend the RuntimeException. Hence runtime exceptions (as far as the test is concerned).
There is no such thing as a "compile exception" or "compile time exception". As Stuart said, there are "compile errors", which the compiler reports (nothing to "catch" here, as as there is no exception involved).
Runtime exception come in checked and unchecked varieties. Checked exceptions need to be treated in the code either by a try/catch block, or a "throws" clause in the method declaration. The compiler will enforce this. Unchecked exception extend java.lang.RuntimeException, and do not need to be treated in the code.