Heim > Java > javaLernprogramm > Lösen Sie eine Ausnahme innerhalb eines Lambda-Ausdrucks aus

Lösen Sie eine Ausnahme innerhalb eines Lambda-Ausdrucks aus

Patricia Arquette
Freigeben: 2025-01-12 06:41:45
Original
307 Leute haben es durchsucht

Ausnahmen in Lambdas auslösen

  • Ein Lambda-Ausdruck kann Ausnahmen auslösen.
  • Für geprüfte Ausnahmen:
  • Die ausgelöste Ausnahme muss mit den in der throws-Klausel der abstrakten Methode der Funktionsschnittstelle aufgeführten Ausnahmen kompatibel sein.

Anforderungen für geprüfte Ausnahmen

  • Wenn Lambda eine geprüfte Ausnahme auslöst (z. B. IOException):
  • Die abstrakte Methode der funktionalen Schnittstelle muss dieselbe Ausnahme in der throws-Klausel enthalten.
  • Ohne diese Klausel ist der Lambda-Ausdruck nicht mit der Methode kompatibel und verursacht einen Kompilierungsfehler.

Beispiel: Ausnahmeauslösung in Lambda
Code:

import java.io.*;

interface MyIOAction {
    boolean ioAction(Reader rdr) throws IOException;
}

class LambdaExceptionDemo {
    public static void main(String args[]) {
        // Esta lambda de bloco pode lançar uma IOException.
        // A cláusula throws deve estar presente em ioAction().
        MyIOAction myIO = (rdr) -> {
            int ch = rdr.read(); // Pode lançar IOException
            // Lógica adicional pode ser inserida aqui
            return true;
        };
    }
}

Nach dem Login kopieren

Erklärung:
throws-Klausel:

  • Die ioAction(Reader rdr)-Methode in der MyIOAction-Funktionsschnittstelle enthält das Auslösen einer IOException.
  • Dadurch kann das mit der Methode verknüpfte Lambda Vorgänge verwenden, die eine IOException auslösen können, wie z. B. rdr.read().

Error without throws-Klausel:

  • Wenn die throws IOException-Klausel aus ioAction entfernt wird, wird das Programm nicht kompiliert.
  • Dies geschieht, weil die vom Lambda ausgelöste Ausnahme (IOException) nicht in der Methode behandelt oder deklariert wird.

Wichtiger Hinweis:

  • Kompatibilität zwischen Lambdas und Funktionsschnittstellen:
  • Ein Lambda-Ausdruck muss mit der abstrakten Methode der Funktionsschnittstelle kompatibel sein.
  • Für geprüfte Ausnahmen erfordert diese Kompatibilität, dass vom Lambda ausgelöste Ausnahmen in der throws-Klausel der Methode aufgeführt sind.

Praxistest:
Versuchen Sie, die throws-Klausel aus ioAction im obigen Code zu entfernen. Dies führt zu einem Kompilierungsfehler aufgrund der Inkompatibilität zwischen Lambda und der funktionalen Schnittstellenmethode.

Lance uma exceção de dentro de uma expressão lambda

Das obige ist der detaillierte Inhalt vonLösen Sie eine Ausnahme innerhalb eines Lambda-Ausdrucks aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
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