-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathTurnOffChecking.java
More file actions
74 lines (65 loc) · 1.99 KB
/
TurnOffChecking.java
File metadata and controls
74 lines (65 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package exceptions;
/**
* RUN:
* javac exceptions/TurnOffChecking.java && java exceptions.TurnOffChecking
* OUTPUT:
* FileNotFoundException: java.io.FileNotFoundException
* IOException: java.io.IOException
* Throwable: java.lang.RuntimeException: Where I am?
* SomeOtherException: exceptions.SomeOtherException
*/
// import java.util.logging.*;
import java.io.*;
public class TurnOffChecking {
public static void main(String[] args)
{
WrapCheckedException wce = new WrapCheckedException();
// one way
wce.throwRuntimeException(3);
// second way
for (int i = 0; i < 4; i++)
{
try {
if (i < 3) {
wce.throwRuntimeException(i);
}
else {
throw new SomeOtherException();
}
}
catch(SomeOtherException e) {
System.out.println("SomeOtherException: " + e);
}
catch(RuntimeException re) {
try {
throw re.getCause();
}
catch(FileNotFoundException e) {
System.out.println("FileNotFoundException: " + e);
}
catch(IOException e) {
System.out.println("IOException: " + e);
}
catch(Throwable e) {
System.out.println("Throwable: " + e);
}
}
}
}
}
class WrapCheckedException {
void throwRuntimeException(int type) {
try {
switch(type) {
case 0: throw new FileNotFoundException();
case 1: throw new IOException();
case 2: throw new RuntimeException("Where I am?");
default: return;
}
}
catch(Exception e) {
throw new RuntimeException(e);
}
}
}
class SomeOtherException extends Exception {}