Used for supplying data exactly the same as Supplier
except containing an exception in the method signature such that if the
method provided throws an exception the try catch can be handled by the function
calling get() rather than in the get method implementation