source: doc/theses/andrew_beach_MMath/code/CondCatch.java@ 82e5670

Last change on this file since 82e5670 was f79ee0d, checked in by Peter A. Buhr <pabuhr@…>, 4 years ago

update exception benchmarks

  • Property mode set to 100644
File size: 872 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 private static long loop(int times) {
9 long startTime = System.nanoTime();
10 for (int count = 0 ; count < times ; ++count) {
11 try {
12 try {
13 throw new EmptyException();
14 } catch (EmptyException exc) {
15 if (!should_catch) {
16 throw exc;
17 }
18 }
19 } catch (EmptyException exc) {
20 // ...
21 }
22 }
23 long endTime = System.nanoTime();
24 return endTime - startTime;
25 }
26
27 public static void main(String[] args) {
28 int times = 1;
29 if (0 < args.length) {
30 times = Integer.parseInt(args[0]);
31 }
32 if (1 < args.length) {
33 should_catch = 0 != Integer.parseInt(args[1]);
34 }
35
36 // Warm-Up:
37 loop(1000);
38
39 long time = loop(times);
40 System.out.format("Run-Time (s): %.1f%n", time / 1_000_000_000.);
41 }
42}
Note: See TracBrowser for help on using the repository browser.