source: doc/theses/andrew_beach_MMath/code/CondCatch.java@ 8ee4475

ADT ast-experimental enum forall-pointer-decay jacob/cs343-translation new-ast-unique-expr pthread-emulation qualifiedEnum
Last change on this file since 8ee4475 was 8ee4475, checked in by Andrew Beach <ajbeach@…>, 4 years ago

Conditional matching benchmarks renamed based on type of catch used (catch=recover).

  • Property mode set to 100644
File size: 877 bytes
Line 
1// Conditional Match (or Re-Raise)
2
3class EmptyException extends Exception {}
4
5public class CondCatch {
6 static boolean should_catch = false;
7
8 static void throw_exception() throws EmptyException {
9 throw new EmptyException();
10 }
11
12 static void cond_catch() throws EmptyException {
13 try {
14 throw_exception();
15 } catch (EmptyException exc) {
16 if (!should_catch) {
17 throw exc;
18 }
19 }
20 }
21
22 public static void main(String[] args) {
23 int times = 1;
24 if (0 < args.length) {
25 times = Integer.parseInt(args[0]);
26 }
27 if (1 < args.length) {
28 should_catch = 0 != Integer.parseInt(args[1]);
29 }
30
31 long startTime = System.nanoTime();
32 for (int count = 0 ; count < times ; ++count) {
33 try {
34 cond_catch();
35 } catch (EmptyException exc) {
36 // ...
37 }
38 }
39 long endTime = System.nanoTime();
40 System.out.println("Run-Time (ns) " + (endTime - startTime));
41 }
42}
Note: See TracBrowser for help on using the repository browser.