Exception chaining AKA exception wrapping is a object-oriented programming technique of wrapping exceptions into exceptions by saving original exception, i.e. as a Cause property. The idea is that a method should throw exceptions defined at the same abstraction level as the method itself, without discarding important debugging information. This way is particularily enforced by Checked_exceptions in Java_language.