Если в лямбда-функции есть один оператор, мы можем опустить определение полного кода для него:
new Thread(() -> System.out.println());
Почему это не так для операторов, которые генерируют исключения? Это дает ошибку компиляции с указанием '{' expected
:
new Thread(() -> throw new RuntimeException());
Конечно, включение лямбда-тела в кодовый блок работает:
new Thread(() -> {
throw new RuntimeException();
});