In Java ist der Umgang mit InterruptedException entscheidend, wenn es um Methoden geht, die diese Ausnahme auslösen können. Zwei gängige Ansätze zur Behandlung dieser Unterbrechung sind:
try { // ... } catch (InterruptedException e) { Thread.currentThread().interrupt(); }
Dieser Ansatz eignet sich, wenn die InterruptedException ein gültiges Ergebnis der Methode darstellt und an diese weitergegeben werden soll der Anrufer. Wenn eine Methode beispielsweise einen blockierenden Netzwerkaufruf ausführt, der eine InterruptedException auslöst, ist es sinnvoll, diese Ausnahme weitergeben zu lassen, um anzuzeigen, dass der Vorgang unterbrochen wurde.
try { //... } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new RuntimeException(e); }
Dieser Ansatz wird bevorzugt, wenn die Methode im Falle einer Unterbrechung kein gültiges Ergebnis liefern kann und abbrechen soll. Durch das Setzen des Unterbrechungsflags (Thread.currentThread().interrupt()) wird sichergestellt, dass der Thread unterbrochen bleibt und der Aufrufer über die Unterbrechung informiert wird.
Der geeignete Der Ansatz hängt von der Situation ab:
void printSum(Server server) { try { int sum = computeSum(server); System.out.println("Sum: " + sum); } catch (InterruptedException e) { Thread.currentThread().interrupt(); // set interrupt flag System.out.println("Failed to compute sum"); } }
Hier kann die printSum-Methode ihren Vorgang bei einer Unterbrechung nicht abschließen, daher fängt sie die InterruptedException ab, setzt das Interrupt-Flag und druckt eine alternative Nachricht.
Das obige ist der detaillierte Inhalt vonWie sollten InterruptedExceptions in Java behandelt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!