static void processError( IProcessingError error, IFlexiCaptureProcessor processor, ErrorHandlingStrategy strategy ) { assert( error != null ); // You can store the problematic image for later analysis if( error.ImageFile() != null ) { string imageReference = error.ImageFile().GetFileReference(); } // And use different strategies to handle the error switch( strategy ) { // 1) Log the error and continue case ErrorHandlingStrategy.LogAndContinue: trace( "Processing error: " + error.MessageText() ); return; // 2) Retry case ErrorHandlingStrategy.LogAndRetry: trace( "Processing error: " + error.MessageText() ); // Resume processing from the position where error occurred processor.ResumeProcessing( true ); return; // 3) Break processing case ErrorHandlingStrategy.ThrowException: // This will reset the processing state (image queue, error condition, etc.) but keep // the processing configuration (loaded templates and processing params). You can omit this // call if you do not plan to reuse the processor instance or reset the processor elsewhere processor.ResetProcessing(); throw new Exception( error.MessageText() ); } }