Skip to content

Commit e26d97f

Browse files
committed
Task2505
1 parent 066c1e4 commit e26d97f

2 files changed

Lines changed: 60 additions & 0 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.javarush.task.task25.task2505;
2+
3+
/*
4+
Без дураков
5+
*/
6+
7+
public class Solution {
8+
9+
public static void main(String[] args) {
10+
MyThread myThread = new Solution().new MyThread("super secret key");
11+
myThread.start();
12+
}
13+
14+
public class MyThread extends Thread {
15+
private String secretKey;
16+
17+
public MyThread(String secretKey) {
18+
this.secretKey = secretKey;
19+
setUncaughtExceptionHandler(new MyUncaughtExceptionHandler());
20+
// setDaemon(true);
21+
}
22+
23+
@Override
24+
public void run() {
25+
throw new NullPointerException("it's an example");
26+
}
27+
28+
private class MyUncaughtExceptionHandler implements UncaughtExceptionHandler {
29+
@Override
30+
public void uncaughtException(Thread t, Throwable e) {
31+
try {
32+
Thread.sleep(500);
33+
} catch (InterruptedException ex) {
34+
throw new RuntimeException(ex);
35+
}
36+
System.out.println(String.format("%s, %s, %s",MyThread.this.secretKey, t.getName(), e.getMessage()));
37+
}
38+
}
39+
}
40+
41+
}
42+
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
taskKey="com.javarush.task.task25.task2505"\n\nБез дураков
2+
3+
1. Создай private class MyUncaughtExceptionHandler, который на перехват исключения должен подождать половину секунды,
4+
а затем вывести на экран secretKey, имя трэда и сообщение возникшего исключения.
5+
Используй String.format(...). Пример:
6+
super secret key, Thread-0, it's an example
7+
2. Разберись в последовательности выполняемого кода и обеспечь логирование возникновения исключения в п.1.
8+
3. Метод main в тестировании не участвует.
9+
10+
11+
Требования:
12+
1. Создай private class MyUncaughtExceptionHandler с конструктором по-умолчанию в классе MyThread.
13+
2. Во время перехвата исключения, MyUncaughtExceptionHandler должен вызвать Thread.sleep(500).
14+
3. Затем, MyUncaughtExceptionHandler должен выводить в консоль secretKey, имя трэда и сообщение возникшего исключения.
15+
4. Для вывода сообщения используй String.format(...).
16+
5. Нужно обеспечить логирование возникновения исключения.
17+
18+

0 commit comments

Comments
 (0)