/// <summary> /// Throws an InvalidOperationException with the specified resource string /// </summary> /// <param name="resourceName">Resource to use in the exception</param> /// <param name="args">Formatting args.</param> internal static void ThrowInvalidOperation(string resourceName, params object[] args) { #if DEBUG ResourceUtilities.VerifyResourceStringExists(resourceName); #endif if (s_throwExceptions) { throw new InvalidOperationException(ResourceUtilities.FormatResourceString(resourceName, args)); } }
internal static void VerifyThrow(bool condition, string messageResourceName, string commandLineArg) { if (!condition) { Throw(messageResourceName, commandLineArg); } #if DEBUG else { ResourceUtilities.VerifyResourceStringExists(messageResourceName); } #endif }
/// <summary> /// Throws the exception if the specified condition is not met. /// </summary> /// <param name="condition"></param> /// <param name="messageResourceName"></param> /// <param name="invalidSwitch"></param> internal static void VerifyThrow(bool condition, string messageResourceName, string invalidSwitch) { if (!condition) { Throw(messageResourceName, invalidSwitch, null, false); } #if DEBUG else { ResourceUtilities.VerifyResourceStringExists(messageResourceName); } #endif }
/// <summary> /// Throws an ArgumentException that can include an inner exception. /// /// PERF WARNING: calling a method that takes a variable number of arguments /// is expensive, because memory is allocated for the array of arguments -- do /// not call this method repeatedly in performance-critical scenarios /// </summary> /// <remarks> /// This method is thread-safe. /// </remarks> /// <param name="innerException">Can be null.</param> /// <param name="resourceName"></param> /// <param name="args"></param> private static void ThrowArgument ( Exception innerException, string resourceName, params object[] args ) { #if DEBUG ResourceUtilities.VerifyResourceStringExists(resourceName); #endif if (s_throwExceptions) { throw new ArgumentException(ResourceUtilities.FormatResourceString(resourceName, args), innerException); } }
/// <summary> /// Throws an InvalidToolsetDefinitionException including a specified inner exception, /// which may be interesting to hosts. /// /// PERF WARNING: calling a method that takes a variable number of arguments /// is expensive, because memory is allocated for the array of arguments -- do /// not call this method repeatedly in performance-critical scenarios /// </summary> /// <param name="resourceName"></param> /// <param name="args"></param> internal static void Throw ( Exception innerException, string resourceName, params string[] args ) { #if DEBUG ResourceUtilities.VerifyResourceStringExists(resourceName); #endif string errorCode; string helpKeyword; string message = ResourceUtilities.FormatResourceString(out errorCode, out helpKeyword, resourceName, (object[])args); throw new InvalidToolsetDefinitionException(message, errorCode, innerException); }