Properly implement exception chaining