/*
* This file is part of the Jikes RVM project (http://jikesrvm.org).
*
* This file is licensed to You under the Eclipse Public License (EPL);
* You may not use this file except in compliance with the License. You
* may obtain a copy of the License at
*
* http://www.opensource.org/licenses/eclipse-1.0.php
*
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership.
*/
import java.io.FileInputStream;
import java.io.IOException;
class MyErrorBase extends Throwable { }
class MyError extends MyErrorBase { }
class NotMyError extends Throwable { }
class TestThrow {
public static void main(String[] args) throws Throwable {
run();
}
public static void run() throws Throwable {
System.out.println("TestThrow");
// test "user" exceptions
try {
int a = 1;
int b = 2;
int c = a + b * foo();
System.out.println(c);
} catch (MyErrorBase e) {
System.out.println("caught: " + e);
}
// test "vm" exceptions
try {
FileInputStream s = new FileInputStream("xyzzy");
System.out.println(s);
} catch (IOException e) {
System.out.println("caught: " + e.getClass());
}
}
static int foo() throws MyError,NotMyError {
if (true) {
throw new MyError();
} else {
throw new NotMyError();
}
}
static int bar() {
int i = 1;
int j = 0;
return i / j;
}
}