1) Exception handling is used to make sure that exceptions do not occur. (F) 2) An exception represents an error condition that occurs while the program runs. (T) 3) If an exception is thrown, the program will always crash. (F) 4) A NumberFormatException can occur when input of the wrong type is entered. (T) 5) If a statement in a try block throws an exception, the exception will be caught and handled by the first matching catch block. (T) 6) If the exception is caught, we go back and finish the rest of the try block. (F) 7) If the program crashes, the output printed is the same as what the getMessage() and printStackTrace() methods in the Exception class would print. (T) 8) If two types of exceptions are caught and one is a subclass of the other, the more general one should go first. (F) 9) The break statement is used to make sure that only one catch block gets run. (F) 10) If no catch block matches the exception that gets thrown, that exception gets propagated back up the call sequence. (T) 11) If a try-catch-finally statement starts to run, the finally block always runs, whether an exception occurred or not. (T) 12) An exception propagator is a method that catches an exception. (F) 13) The only way an exception can be created is for an error condition to occur. (F) 14) Checked exceptions are the ones that are NOT descendants of RuntimeException. (T) 15) For unchecked exceptions, you must either put the dangerous code inside a try-catch statement or put a "throws" clause on the header of the method. (F) 16) A NullPointerException occurs when an object is accessed before being initialized. (T) 17) The keyword "throw" (not "throws") is used to throw an exception directly. (T) 18) Now that you know how to handle exceptions, your programs should never crash. (T!)