Ich erstelle etwas Multithreading-Code und habe eine JobDispatcher-Klasse erstellt, die Threads erstellt. Ich möchte, dass dieses Objekt alle nicht behandelten Ausnahmen in den Worker-Threads behandelt, und deshalb verwende ich
%Vor%Nun möchte ich diese Funktionalität testen - wie kann ich eine unbehandelte Ausnahme in der run () -Methode meines Worker-Objekts erzeugen?
Werfen Sie einfach eine Ausnahme aus.
ZB:
%Vor%Abgeschlossen:
%Vor%Was ist das Problem mit dem Auslösen einer Ausnahme:
%Vor%Innerhalb Ihrer Laufmethode. Und natürlich, es nicht zu fangen. Es sollte Ihren Handler auslösen.
Sie sollten eine unchecked Ausnahme auslösen . Eine ungeprüfte Ausnahme erfordert nicht, dass Ihr Code sie verarbeitet, und ist daher ein guter Kandidat, um den gesamten Aufruf-Stack zu erreichen.
Sie können beispielsweise RuntimeException auswählen oder sogar etwas wie AssertionError , wenn Sie die Wahrscheinlichkeit minimieren möchten, dass ein Teil des Codes die Exception abfängt und zuvor behandelt es erreicht deinen Handler.
fügen Sie einfach diesen Code hinzu und Sie erhalten unbehandelte Ausnahme ohne Flusenfehler:
%Vor%Tags und Links java multithreading exception