Heim > Java > javaLernprogramm > Wie fängt man ArrayIndexOutOfBoundsException in SwingWorker- und Executor-Threads ab?

Wie fängt man ArrayIndexOutOfBoundsException in SwingWorker- und Executor-Threads ab?

Patricia Arquette
Freigeben: 2024-12-19 20:08:10
Original
168 Leute haben es durchsucht

How to Catch ArrayIndexOutOfBoundsException in SwingWorker and Executor Threads?

Problem mit ArrayIndexOutOfBoundsException in SwingWorker und Executor

Problembeschreibung

Verwendung von Executor und SwingWorker Beim Durchführen von Multithread-Vorgängen ist das Subjekt auf eine ArrayIndexOutOfBoundsException gestoßen, aber nach dem Auskommentieren der Anweisungen, die die Ausnahme im Code verursachen würden, ist die Ausnahme nicht erneut aufgetreten. Der Fragesteller möchte wissen, wie man eine solche Ausnahme abfängt.

Antwort

Um ArrayIndexOutOfBoundsException abzufangen, können Sie die Ausnahme von Future#get() in der done()-Methode von SwingWorker erneut auslösen.

@Override
protected void done() {
    try {
        get();
    } catch (InterruptedException | ExecutionException ie) {
        ie.printStackTrace();
    } catch (IllegalStateException is) {
        is.printStackTrace();
    }
}
Nach dem Login kopieren

Geänderter Codeausschnitt

// ...

@Override
protected void done() {
    if (str.equals("StartShedule")) {
        try {
            get();
        } catch (InterruptedException | ExecutionException ie) {
            ie.printStackTrace();
        } catch (IllegalStateException is) {
            is.printStackTrace();
        }
    }
}
Nach dem Login kopieren

Vollständiger Code

Der vollständige Code lautet wie folgt:

// ...

@Override
protected void done() {
    if (str.equals("StartShedule")) {
        try {
            get();
        } catch (InterruptedException | ExecutionException ie) {
            ie.printStackTrace();
        } catch (IllegalStateException is) {
            is.printStackTrace();
        }
    }
}

// ...
Nach dem Login kopieren

Nach Verwendung dieser Änderung kann der Code, der die Ausnahme verursacht, erfasst werden, auch wenn er nicht auskommentiert ist. ArrayIndexOutOfBoundsException.

Das obige ist der detaillierte Inhalt vonWie fängt man ArrayIndexOutOfBoundsException in SwingWorker- und Executor-Threads ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage