Java 8, Optional. throwing Exceptions, and Re-throwing exceptions, preventing null

48 Views Asked by At

I have confusing (lack of comprehension) trying to translate some part of my code to Optional on Java 8.

First example mock Code

    private void privateMethodOne(CustomRequesDto customRequesDto) {

        // Some lines of code

        ResponseEntity<CustomResponseDto> responseEntity;
        try {
            responseEntity = callWebClientRequestOne();
        } catch (Exception e) {
            RuntimeException ex = new CustomClientException(customRequesDto, e.getMessage());
            log.error(ex.getMessage());
            throw ex;
        }


        if (responseEntity.getBody() == null) {
            throw new CustomResponseException("myMessage");
        }
        CustomResponseDto customResponseDto = responseEntity.getBody();
        return Optional.ofNullable(customResponseDto).map(CustomResponseDto::getProperty).orElse(null);

    }

In the First example mock Code, I would like to reduce this lines in a single line, using Optional (if it is possible)

        if (responseEntity.getBody() == null) {
            throw new CustomResponseException("myMessage");
        }
        CustomResponseDto customResponseDto = responseEntity.getBody();
        return Optional.ofNullable(customResponseDto).map(CustomResponseDto::getProperty).orElse(null);

How to do the same in a Single line?

Second example mock Code

    private void privateMethodTwo(CustomRequesDto customRequesDto) {

        // Some lines of code

        ResponseEntity<byte[]> responseEntity = null;
        try {
            responseEntity = callWebClientRequestTwo();
        } catch (Exception e) {
            mapExceptions.put(customRequesDto, e.getMessage());
        }

        try {
            if (responseEntity != null && responseEntity.getBody() == null) {
                throw new CustomResponseException("myMessage");
            }
        } catch (Exception e) {
            mapExceptions.put(someObject, e.getMessage());
        }

        // continue the executions
    }

Second example mock Code, I would like to reduce this lines in a single line, using Optional (if it is possible)

        try {
            if (responseEntity != null && responseEntity.getBody() == null) {
                throw new CustomResponseException("myMessage");
            }
        } catch (Exception e) {
            mapExceptions.put(someObject, e.getMessage());
        }

How to perform the same in a Single line?

0

There are 0 best solutions below