Functional interface similar to
Runnable, except the
run() method is allowed to throw an arbitrary
exception.
The run() method is declared to be able to throw Exception, therefore a functional interface such as
this can be used in contexts where users may throw checked exceptions.