Using options is usually considered better coding practice than raising exceptions, because it forces the caller to do something sensible in the None case.
And this is possible in Java since java 8 with [Optional] type and considered a good (modern) coding practice : https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html
I would have thought that this came from Scala, another multi paradigm programming language, leaning towards functional programming. Functional programming as a time travelling machine !