internal static void CallCts(Trace tracer, string methodName, LocalizedString exceptionString, ConvertUtils.CtsCall ctsCall) { try { ctsCall(); } catch (ExchangeDataException ex) { StorageGlobals.ContextTraceError <string, ExchangeDataException>(tracer, "{0}: ExchangeDataException, {1}", methodName, ex); throw new ConversionFailedException(ConversionFailureReason.CorruptContent, exceptionString, ex); } catch (IOException ex2) { StorageGlobals.ContextTraceError <string, IOException>(tracer, "{0}: IOException, {1}", methodName, ex2); if (StorageGlobals.IsDiskFullException(ex2)) { throw new StorageTransientException(exceptionString, ex2); } throw new StoragePermanentException(exceptionString, ex2); } }