Один из них: Почему вы хотите поговорить о многочисленном ненормальном захвате в одиночку?
Сначала посмотрите на пример:
Общедоступный класс. Оператор выполнения потока размещен в блоке Try-Catch, нет никакой помощи.
Аномалия времени выполнения была брошена вручную. Результат работы, как показано ниже:
Было обнаружено, что аномалии были брошены в консоль, а заявления в блоке подъема не были напечатаны.
Заключение: многочисленная операция не может обрабатывать аномалии в процессе выполнения аномалий в порядке. Аномальные сбеги, задача не выполняется.
Итак, мы должны подумать о том, как уловить аномалии в многопотоке?
2. Захватить аномалии в многопоточных
Давайте выполним шаги ниже, чтобы завершить эксперимент:
1. Определите процессор исключений
Требуется реализовать метод unctexception thread.uncaultexceptionHandler, следующим образом: следующее:
/ * * 1 -й шаг: определите «ненормальный процессор», который соответствует спецификации анонмального процессора. аномалии называется, когда она почти мертва*/ @override public void uncaughtexception (Thread T, Throwable e) {System.out.println ("пойман"+e);}}}2. Определите фабрику потока, которая использует этот обработчик исключений
/** Шаг 2: Определите фабрику потока* Фабрика потока, чтобы прикрепить задачу к потоку, и привязать поток с аномальным процессором*/class Hanlderthreadfactory реализует ThinkFactory {@Override public ruithRead (naable r) {Система. println (это+"Создание нового потока"); Handler System.out.println ("eh ="+t.getuncaughtexceptionHandler ());3. Определите задачу и позвольте ей бросить исключение
/ * Шаг 3: Наша задача может бросить исключение. ;
4. Позвоните в эксперимент
/** Шаг 4: Используйте завод по потоке для создания пула потоков, и вызовите его метод выполнения*/public class threadexceptionuncaughtexceptionHandler {public static void main (string [] args) {receectorer exec = executors.newcachedthreadpool (new hanldrtyreadfactory () );Результат работы, как показано ниже:
3. Заключение
Чтобы захватить аномалии, генерируемые многопоточными потоками в Java, вам необходимо настроить аномальный процессор и установить его на соответствующую фабрику потока (то есть шаг первой и второй шаги).
Четвертое, расширить
Если вы знаете, что один и тот же аномальный процессор будет использоваться повсюду в коде, более простым способом является установка статического домена в классе потока и установить этот процессор в неудовлетворительный процессор по умолчанию.
Этот процессор называется только без надлежащего неудовлетворительного процессора без потоков.
Public static void main (String [] args) {thread.setDefaultUncaughtexceptionHandler (New MyuncaugexceptionHandler ());Выше всего содержимое аномального захвата многопоточного многопоточного многопоточного многопоточного.