public ProgramExecutionException(ProgramExecutionResult executionResult, Exception innerException) : base("An exception catched during program execution!", innerException)
 {
     ExecutionResult = executionResult;
 }
 public StreamRedirectionExecutionException(ProgramExecutionResult executionResult, Exception innerException) : base("One of stream redirection methods has failed!", innerException)
 {
     ExecutionResult = executionResult;
 }
 public ExecutionException(ProgramExecutionResult executionResult, string message) : base(message)
 {
     ExecutionResult = executionResult;
 }
 public StdOutLengthLimitReachedExecutionException(ProgramExecutionResult executionResult, string message) : base(executionResult, message)
 {
 }
 public PeakDiskSpaceUsageLimitReachedExecutionException(ProgramExecutionResult executionResult, string message) : base(executionResult, message)
 {
 }
 public RealTimeLimitReachedExecutionException(ProgramExecutionResult executionResult, string message) : base(executionResult, message)
 {
 }
 public ExecutionException(string message, Exception innerException, ProgramExecutionResult executionResult = null) : base(message, innerException)
 {
     ExecutionResult = executionResult;
 }