class X { public static void Main() { try {} catch (Exception e) {} finally { try { throw new Exception(); } catch (Exception e) {} } } } TryHandlerStart: start: 0 end: 2 Catch: Exception hasRethrow: 0 at 2 CallFinally: dest: 5 Throw: inCurrentMethod: 0 TryHandlerEnd: TryHandlerStart: start: 2 end: 5 CallFinally: dest: 5 Throw: inCurrentMethod: 0 TryHandlerEnd: TryHandlerStart: start: 5 end: 11 Catch: Exception hasRethrow: 0 at 11 Throw: inCurrentMethod: 0 TryHandlerEnd: TryHandlerStart: start: 0 end: -1 Throw: inCurrentMethod: 0 TryHandlerEnd: