在orElseThrow中执行多行

Execute multiple lines in orElseThrow

我有以下代码块,如果找不到用户则抛出异常。另一方面,除了抛出异常外,我还想在找不到用户时调用一个方法。那么,我可以通过添加另一个 .orElseThrow 等来调用它,还是应该在标准 if 条件下转换此块?

final User user = userRepository.findByUsername(request.getUsername())
                .orElseThrow(InvalidCredentialsException::new);

喜欢就好:

final User user = userRepository.findByUsername(request.getUsername())
                .orElseThrow(() -> {
                                System.out.println("multiple lines");
                                return new InvalidCredentialsException();
                                });