1*f1fbf3c2SXin Li package test1; 2*f1fbf3c2SXin Li 3*f1fbf3c2SXin Li class GetThrow1 extends Exception { 4*f1fbf3c2SXin Li 5*f1fbf3c2SXin Li /** default serialVersionUID */ 6*f1fbf3c2SXin Li private static final long serialVersionUID = 1L; 7*f1fbf3c2SXin Li } 8*f1fbf3c2SXin Li 9*f1fbf3c2SXin Li class GetThrow2 extends Exception { 10*f1fbf3c2SXin Li 11*f1fbf3c2SXin Li /** default serialVersionUID */ 12*f1fbf3c2SXin Li private static final long serialVersionUID = 1L; 13*f1fbf3c2SXin Li } 14*f1fbf3c2SXin Li 15*f1fbf3c2SXin Li public class GetThrowables { 16*f1fbf3c2SXin Li int k = 0; 17*f1fbf3c2SXin Li m1()18*f1fbf3c2SXin Li public void m1() throws GetThrow1, GetThrow2 { 19*f1fbf3c2SXin Li if (k < 0) 20*f1fbf3c2SXin Li throw new GetThrow1(); 21*f1fbf3c2SXin Li else if (k == 1) 22*f1fbf3c2SXin Li throw new GetThrow2(); 23*f1fbf3c2SXin Li 24*f1fbf3c2SXin Li k = 1; 25*f1fbf3c2SXin Li } 26*f1fbf3c2SXin Li run()27*f1fbf3c2SXin Li public int run() throws GetThrow2 { 28*f1fbf3c2SXin Li int i = 0; 29*f1fbf3c2SXin Li try { 30*f1fbf3c2SXin Li try { 31*f1fbf3c2SXin Li m1(); 32*f1fbf3c2SXin Li } 33*f1fbf3c2SXin Li catch (GetThrow1 e) { 34*f1fbf3c2SXin Li i = 1; 35*f1fbf3c2SXin Li throw e; 36*f1fbf3c2SXin Li } 37*f1fbf3c2SXin Li finally { 38*f1fbf3c2SXin Li i += 3; 39*f1fbf3c2SXin Li } 40*f1fbf3c2SXin Li } 41*f1fbf3c2SXin Li catch (GetThrow1 e2) { 42*f1fbf3c2SXin Li ++i; 43*f1fbf3c2SXin Li } 44*f1fbf3c2SXin Li 45*f1fbf3c2SXin Li return i; 46*f1fbf3c2SXin Li } 47*f1fbf3c2SXin Li } 48