What happens if you have multiple modules in the pipeline? They all get new instances of ExceptionContext? This feels like overkill to me. We shouldn't throw here at all. You should be able to set the property more than once. The only thing that's invalid is setting both properties. So we should disallow setting Exception and Result but it's ok to set Result or Exception multiple times.