Defines a contract to refine exceptions. Sometimes we need to dig deeper to find the
actual cause of the problem. This interface can help us to transform the given exception
before handling it.
Author:
Ali Dehghani
Implementation Note:
Do not throw exceptions in method implementations.