I've tried to throw the same excpetion in a finally block, while the previously throwed expcetion was not catched. I expected that we have two object of Excpetion type that shal be thrown. Since we need in two catch clauses as the following:
public static void main(String[] args) {
    try {
        try {
            try {
                throw new Exception();
            } finally {
                System.out.println("finally");
                throw new Exception();
            }
        } catch (Exception ex) {
            System.out.println("catch");
        } finally {
            System.out.println("finally");
        }
    } catch (Exception ex) {
        System.out.println("catch");
    }
    System.out.println("finish");
}
But that program prints:
finally
catch
finally
finish
That is, the second catch clause was not entered. Why?
 
     
    