1*055d4590SKeyi Gui /* 2*055d4590SKeyi Gui * Copyright (C) 2007 The Android Open Source Project 3*055d4590SKeyi Gui * 4*055d4590SKeyi Gui * Licensed under the Apache License, Version 2.0 (the "License"); 5*055d4590SKeyi Gui * you may not use this file except in compliance with the License. 6*055d4590SKeyi Gui * You may obtain a copy of the License at 7*055d4590SKeyi Gui * 8*055d4590SKeyi Gui * http://www.apache.org/licenses/LICENSE-2.0 9*055d4590SKeyi Gui * 10*055d4590SKeyi Gui * Unless required by applicable law or agreed to in writing, software 11*055d4590SKeyi Gui * distributed under the License is distributed on an "AS IS" BASIS, 12*055d4590SKeyi Gui * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*055d4590SKeyi Gui * See the License for the specific language governing permissions and 14*055d4590SKeyi Gui * limitations under the License. 15*055d4590SKeyi Gui */ 16*055d4590SKeyi Gui 17*055d4590SKeyi Gui public class Blort 18*055d4590SKeyi Gui { maybeThrow(int x)19*055d4590SKeyi Gui public static int maybeThrow(int x) { 20*055d4590SKeyi Gui if (x < 10) { 21*055d4590SKeyi Gui throw new RuntimeException(); 22*055d4590SKeyi Gui } 23*055d4590SKeyi Gui 24*055d4590SKeyi Gui return x; 25*055d4590SKeyi Gui } 26*055d4590SKeyi Gui exTest1(int x)27*055d4590SKeyi Gui public static int exTest1(int x) { 28*055d4590SKeyi Gui try { 29*055d4590SKeyi Gui maybeThrow(x); 30*055d4590SKeyi Gui return 1; 31*055d4590SKeyi Gui } catch (RuntimeException ex) { 32*055d4590SKeyi Gui return 2; 33*055d4590SKeyi Gui } 34*055d4590SKeyi Gui } 35*055d4590SKeyi Gui exTest2(int x)36*055d4590SKeyi Gui public static int exTest2(int x) { 37*055d4590SKeyi Gui try { 38*055d4590SKeyi Gui x++; 39*055d4590SKeyi Gui x = maybeThrow(x); 40*055d4590SKeyi Gui } catch (RuntimeException ex) { 41*055d4590SKeyi Gui return 1; 42*055d4590SKeyi Gui } 43*055d4590SKeyi Gui 44*055d4590SKeyi Gui // Since the code in the try block can't possibly throw, there 45*055d4590SKeyi Gui // should not be a catch in the final result. 46*055d4590SKeyi Gui try { 47*055d4590SKeyi Gui x++; 48*055d4590SKeyi Gui } catch (RuntimeException ex) { 49*055d4590SKeyi Gui return 2; 50*055d4590SKeyi Gui } 51*055d4590SKeyi Gui 52*055d4590SKeyi Gui try { 53*055d4590SKeyi Gui return maybeThrow(x); 54*055d4590SKeyi Gui } catch (RuntimeException ex) { 55*055d4590SKeyi Gui return 3; 56*055d4590SKeyi Gui } 57*055d4590SKeyi Gui } 58*055d4590SKeyi Gui } 59