I wrote a progrmame to test whether the try catch block affect of the running time or not. Code as follow shows
public class ExceptionTest {
    public static void main(String[] args) {
        System.out.println("Loop\t\tNormal(nano second)\t\tException(nano second)");
        int[] arr = new int[] { 1, 500, 2500, 12500, 62500, 312500, 16562500 };
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i] + "," + NormalCase(arr[i]) + ","
                    + ExceptionCase(arr[i]));
        }
    }
    public static long NormalCase(int times) {
        long firstTime=System.nanoTime();
        for (int i = 0; i < times; i++) {
            int a = i + 1;
            int b = 2;
            a = a / b;
        }
        return System.nanoTime()-firstTime;
    }
    public static long ExceptionCase(int times) {
        long firstTime =System.nanoTime();
        for (int i = 0; i < times; i++) {
            try {
                int a = i + 1;
                int b = 0;
                a = a / b;
            } catch (Exception ex) {
            }
        }
        return System.nanoTime()-firstTime;
    }
}
the result shows bellow:

I wonder why less time when turns to 62500 and biger numbers?is It overflow ? seems not.
 
     
    