| // Test a `throw' across a libffi call. |
| |
| import java.lang.reflect.*; |
| |
| public class invokethrow |
| { |
| public static void doit () throws Throwable |
| { |
| throw new Throwable ("hi!"); |
| } |
| |
| public static void main (String[] args) |
| { |
| Class k = invokethrow.class; |
| try |
| { |
| Class[] noargs = new Class[0]; |
| Method m = k.getMethod ("doit", noargs); |
| m.invoke (null, null); |
| } |
| catch (InvocationTargetException x1) |
| { |
| System.out.println (x1.getTargetException ().getMessage ()); |
| } |
| catch (UnsupportedOperationException _) |
| { |
| // Some systems don't support invocation, in which case we |
| // will fake a passing result. |
| System.out.println ("hi!"); |
| } |
| catch (Throwable _) |
| { |
| } |
| } |
| } |