private static string DecodeErrorMessage(OCREngineErrorCode errorCode, params object [] messageParams) { string msgTemplate; switch (errorCode) { case OCREngineErrorCode.OCREngineTemporaryUnavailable: { msgTemplate = "Библиотека оптического распознавания временно недоступна. Код ошибки: {0}"; break; } case OCREngineErrorCode.InitializationError: { msgTemplate = "При инициализации библиотеки оптического распознавания возникла следующая ошибка: {0}"; break; } case OCREngineErrorCode.InternalError: { msgTemplate = "Непредвиденная ошибка библиотеки оптического распознавания: {0}"; break; } case OCREngineErrorCode.InputFileNotFound: { msgTemplate = "Входной файл не найден: {0}"; break; } default: { throw new ArgumentException(string.Format("Unprocessed enum member: {0}", errorCode)); } } var paramsToUse = new object[messageParams.Length]; for (int iIdx = 0; iIdx < paramsToUse.Length; iIdx++) { var p = messageParams[iIdx]; if (p is Exception) { p = (p as Exception).Message; } paramsToUse[iIdx] = p; } return(string.Format(msgTemplate, paramsToUse)); }
public OCREngineException(OCREngineErrorCode errorCode, params object[] messageParams) : base(DecodeErrorMessage(errorCode, messageParams), DetectException(messageParams)) { this.errorCode = errorCode; }