September 2019
Intermediate to advanced
816 pages
18h 47m
English
Sometimes, if Optional is empty, we want to throw an exception (for example, NoSuchElementException). The clumsy solution to this problem is listed as follows:
// Avoidpublic String findStatus() { Optional<String> status = ...; // this is prone to be empty if (status.isPresent()) { return status.get(); } else { throw new NoSuchElementException("Status cannot be found"); }}
But a much more elegant solution will rely on the Optional.orElseThrow() method. The signature of this method, orElseThrow(Supplier<? extends X> exceptionSupplier), allows us to give the exception as follows (if the value is present then orElseThrow() will return it):
// Preferpublic String findStatus() { Optional<String> status = ...; ...