Created
September 18, 2017 13:33
-
-
Save Chikitonik/788788a36a317b646c009cf3379f6e8b to your computer and use it in GitHub Desktop.
JavaRush исключения Thread.UncaughtExceptionHandler
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Solution { | |
/** | |
* [2] Создание обработчика исключений: | |
* Создается объект нашего созданного класса OurHandler | |
*/ | |
public static OurHandler handler = new OurHandler(); | |
public static void main(String[] args) { | |
Thread thread = new TestedThread();//[4] Создание нити | |
thread.setUncaughtExceptionHandler(handler); //Указываем обработчика исключений для этой нити, т.е. что будет перехватывать вместо стандартного try-catch | |
thread.start(); //запуск нити | |
thread.interrupt();//прерывание нити, так как в этот момент нить "спит" Thread.sleep(3000) три секунды, то будет выбрасываться исключение | |
} | |
/** | |
* [3] Класс наследующий нить, с методом, описывающим действие Нити и сообщением при ее прерывании | |
*/ | |
public static class TestedThread extends Thread { | |
public void run() { | |
try { | |
Thread.sleep(3000); | |
} catch (InterruptedException x) { | |
throw new RuntimeException("Стандартное сообщение при выбросе исключения, если не подключить uncaughtException"); | |
} | |
} | |
} | |
/** | |
* [1] Создаем класс, реализующий интерфейс Thread.UncaughtExceptionHandler, в котором только один метод | |
* Все, что сделал в методе - добавил сообщение при возникновении исключения | |
*/ | |
public static class OurHandler implements Thread.UncaughtExceptionHandler { | |
@Override | |
public void uncaughtException(Thread t, Throwable e) { | |
System.out.println("Это сообщение при возникновении исключения пойманое uncaughtException"); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment