Excepción no controlada de referencia de método Java 8
Estoy trabajando en un proyecto con Java 8 y encontré una situación que no puedo entender.
Tengo un código como este:
void deleteEntity(Node node) throws SomeException {
for (ChildNode child: node.getChildren()) {
deleteChild(child);
}
}
void deleteChild(Object child) throws SomeException {
//some code
}
Este código funciona bien, pero puedo reescribirlo con una referencia de método:
void deleteEntity(Node node) throws SomeException {
node.getChildren().forEach(this::deleteChild);
}
Y este código no se compila, dando el errorIncompatible thrown types *SomeException* in method reference
.
IDEA también me dio el errorunhandled exception
.
¿Mi pregunta es, porque? ¿Por qué el código se compila con cada ciclo y no se compila con lambda?