> Java > java지도 시간 > 람다 표현식 내에서 예외 발생

람다 표현식 내에서 예외 발생

Patricia Arquette
풀어 주다: 2025-01-12 06:41:45
원래의
308명이 탐색했습니다.

람다에서 예외 발생

  • 람다 표현식은 예외를 발생시킬 수 있습니다.
  • 확인된 예외의 경우:
  • 발생된 예외는 기능적 인터페이스의 추상 메서드의 throws 절에 나열된 예외와 호환되어야 합니다.

확인된 예외 요구 사항

  • 람다가 확인된 예외(예: IOException)를 발생시키는 경우:
  • 기능적 인터페이스의 추상 메서드는 throws 절에 동일한 예외를 포함해야 합니다.
  • 이 절이 없으면 람다 식이 메서드와 호환되지 않으며 컴파일 오류가 발생합니다.

예: Lambda에서 예외 발생
코드:

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;
        };
    }
}

로그인 후 복사

설명:
throws 절:

  • MyIOAction 기능 인터페이스의 ioAction(Reader rdr) 메소드에는 IOException 발생이 포함됩니다.
  • 이를 통해 메서드와 연결된 람다가 rdr.read()와 같이 IOException을 발생시킬 수 있는 작업을 사용할 수 있습니다.

throw 절이 없는 오류:

  • ioAction에서 throws IOException 절을 제거하면 프로그램이 컴파일되지 않습니다.
  • 이는 람다에서 발생한 예외(IOException)가 메서드에서 처리되거나 선언되지 않았기 때문에 발생합니다.

중요 사항:

  • 람다와 기능적 인터페이스 간의 호환성:
  • 람다 식은 함수형 인터페이스의 추상 메서드와 호환되어야 합니다.
  • 확인된 예외의 경우 이 호환성을 위해서는 람다에서 발생한 예외가 메서드의 throws 절에 나열되어 있어야 합니다.

실습 시험:
위 코드의 ioAction에서 throws 절을 제거해 보세요. 이는 람다와 함수형 인터페이스 방식의 비호환으로 인해 컴파일 오류가 발생하게 됩니다.

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

위 내용은 람다 표현식 내에서 예외 발생의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿