ThrowHelper
using System.Runtime.CompilerServices;
namespace System
{
internal static class ThrowHelper
{
internal static void ThrowArgumentNullException(System.ExceptionArgument argument)
{
throw CreateArgumentNullException(argument);
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static Exception CreateArgumentNullException(System.ExceptionArgument argument)
{
return new ArgumentNullException(argument.ToString());
}
internal static void ThrowArrayTypeMismatchException()
{
throw CreateArrayTypeMismatchException();
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static Exception CreateArrayTypeMismatchException()
{
return new ArrayTypeMismatchException();
}
internal static void ThrowArgumentException_InvalidTypeWithPointersNotSupported(Type type)
{
throw CreateArgumentException_InvalidTypeWithPointersNotSupported(type);
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static Exception CreateArgumentException_InvalidTypeWithPointersNotSupported(Type type)
{
return new ArgumentException(System.SR.Format(System.SR.Argument_InvalidTypeWithPointersNotSupported, type));
}
internal static void ThrowArgumentException_DestinationTooShort()
{
throw CreateArgumentException_DestinationTooShort();
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static Exception CreateArgumentException_DestinationTooShort()
{
return new ArgumentException(System.SR.Argument_DestinationTooShort);
}
internal static void ThrowIndexOutOfRangeException()
{
throw CreateIndexOutOfRangeException();
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static Exception CreateIndexOutOfRangeException()
{
return new IndexOutOfRangeException();
}
internal static void ThrowArgumentOutOfRangeException()
{
throw CreateArgumentOutOfRangeException();
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static Exception CreateArgumentOutOfRangeException()
{
return new ArgumentOutOfRangeException();
}
internal static void ThrowArgumentOutOfRangeException(System.ExceptionArgument argument)
{
throw CreateArgumentOutOfRangeException(argument);
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static Exception CreateArgumentOutOfRangeException(System.ExceptionArgument argument)
{
return new ArgumentOutOfRangeException(argument.ToString());
}
internal static void ThrowArgumentOutOfRangeException_PrecisionTooLarge()
{
throw CreateArgumentOutOfRangeException_PrecisionTooLarge();
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static Exception CreateArgumentOutOfRangeException_PrecisionTooLarge()
{
return new ArgumentOutOfRangeException("precision", System.SR.Format(System.SR.Argument_PrecisionTooLarge, (byte)99));
}
internal static void ThrowArgumentOutOfRangeException_SymbolDoesNotFit()
{
throw CreateArgumentOutOfRangeException_SymbolDoesNotFit();
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static Exception CreateArgumentOutOfRangeException_SymbolDoesNotFit()
{
return new ArgumentOutOfRangeException("symbol", System.SR.Argument_BadFormatSpecifier);
}
internal static void ThrowInvalidOperationException_OutstandingReferences()
{
throw CreateInvalidOperationException_OutstandingReferences();
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static Exception CreateInvalidOperationException_OutstandingReferences()
{
return new InvalidOperationException(System.SR.OutstandingReferences);
}
internal static void ThrowObjectDisposedException_MemoryDisposed(string objectName)
{
throw CreateObjectDisposedException_MemoryDisposed(objectName);
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static Exception CreateObjectDisposedException_MemoryDisposed(string objectName)
{
return new ObjectDisposedException(objectName, System.SR.MemoryDisposed);
}
internal static void ThrowFormatException_BadFormatSpecifier()
{
throw CreateFormatException_BadFormatSpecifier();
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static Exception CreateFormatException_BadFormatSpecifier()
{
return new FormatException(System.SR.Argument_BadFormatSpecifier);
}
internal static void ThrowArgumentException_OverlapAlignmentMismatch()
{
throw CreateArgumentException_OverlapAlignmentMismatch();
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static Exception CreateArgumentException_OverlapAlignmentMismatch()
{
return new ArgumentException(System.SR.Argument_OverlapAlignmentMismatch);
}
public static bool TryFormatThrowFormatException(out int bytesWritten)
{
bytesWritten = 0;
ThrowFormatException_BadFormatSpecifier();
return false;
}
public static bool TryParseThrowFormatException<T>(out T value, out int bytesConsumed)
{
value = default(T);
bytesConsumed = 0;
ThrowFormatException_BadFormatSpecifier();
return false;
}
}
}