Following on David Arno's answer, you can do something like a discriminated union in OOP, and in an object-functional style such as that afforded by Scala, by Java 8 functional types, or a Java FP library such as Vavr or Fugue it feels fairly natural to write something like:
var value = Measurement.of(2);
out.println(value.map(x -> x * 2));
var empty = Measurement.empty();
out.println(empty.map(x -> x * 2));
var unknown = Measurement.unknown();
out.println(unknown.map(x -> x * 2));
printing
Value(4)
Empty()
Unknown()
(Full implementation as a gist.)
An FP language or library provides other tools like Try (a.k.a. Maybe) (an object that contains either a value, or an error) and Either (an object that contains either a success value or a failure value) that could also be used here.