Repository navigation
Expand file tree
/
Copy pathSolution.java
More file actions
95 lines (77 loc) · 3.42 KB
/
Copy pathSolution.java
File metadata and controls
95 lines (77 loc) · 3.42 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
//But unto them who are called, both Jews and Greeks, Christ the power of God, and the wisdom of God. (1Cor 1:24)
package com.javarush.task.task25.task2505;
/*
Без порожняков
*/
public class Solution {
public static void main(String[] args) {
MyThread myThread = new Solution().new MyThread("super secret key");
myThread.start();
try {
myThread.join();
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
public class MyThread extends Thread {
private String secretKey;
public MyThread(String secretKey) {
this.secretKey = secretKey;
setUncaughtExceptionHandler(new MyUncaughtExceptionHandler());
}
@Override
public void run() {
throw new NullPointerException("it's an example");
}
private class MyUncaughtExceptionHandler implements UncaughtExceptionHandler {
@Override
public void uncaughtException(Thread thread, Throwable e) {
try {
Thread.sleep(500);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
System.out.println(String.format("%s, %s, %s", secretKey, thread.getName(), e.getMessage()));
e.printStackTrace();
}
public MyUncaughtExceptionHandler() {
}
}
}
}
/*
1. Создай private class MyUncaughtExceptionHandler, который на перехват исключения должен подождать половину секунды, а затем вывести на экран secretKey, имя трэда и сообщение возникшего исключения.
Используй String.format(…).
Пример:
super secret key, Thread-0, it's an example
2. Разберись в последовательности выполняемого кода и обеспечь логирование возникновения исключения в п.1.
3. Метод main в тестировании не участвует.
Требования:
1. Создай private class MyUncaughtExceptionHandler с конструктором по-умолчанию в классе MyThread.
2. Во время перехвата исключения, MyUncaughtExceptionHandler должен вызвать Thread.sleep(500).
3. Затем, MyUncaughtExceptionHandler должен выводить в консоль secretKey, имя трэда и сообщение возникшего исключения.
4. Для вывода сообщения используй String.format(...).
5. Нужно обеспечить логирование возникновения исключения.
package com.javarush.task.task25.task2505;
*
Без порожняков
*
public class Solution {
public static void main(String[] args) {
MyThread myThread = new Solution().new MyThread("super secret key");
myThread.start();
}
public class MyThread extends Thread {
private String secretKey;
public MyThread(String secretKey) {
this.secretKey = secretKey;
setUncaughtExceptionHandler(new MyUncaughtExceptionHandler());
setDaemon(true);
}
@Override
public void run() {
throw new NullPointerException("it's an example");
}
}
}
*/