Catching errors
The first step in correctly managing any exception is to begin by catching it correctly. Apex allows developers to do this using the try-catch-finally syntax, shown as follows:
try {
    //Run some code
} catch(ExceptionType ex) {
    //Handle the exception appropriately
} finally {
    //Perform some final clean up code
} A try statement must have a catch or finally block associated with it in order for the code to compile correctly.
In the catch statement, we can specify a type of exception that we want to handle, as in the following example:
try {
    Account acc = null;
    acc.Name = 'Test'; //This will throw a NullPointerException - see
      Chapter 1
} catch(NullPointerException ex) {
    //Handle the exception
} Note that if in this code we had a QueryException thrown instead of a NullPointerException...