mscorlib(4.0.0.0) API with additions
ThrowHelper.cs
3 using System.Security;
4 
5 namespace System
6 {
7  internal static class ThrowHelper
8  {
9  internal static void ThrowArgumentOutOfRangeException()
10  {
11  ThrowArgumentOutOfRangeException(ExceptionArgument.index, ExceptionResource.ArgumentOutOfRange_Index);
12  }
13 
14  internal static void ThrowWrongKeyTypeArgumentException(object key, Type targetType)
15  {
16  throw new ArgumentException(Environment.GetResourceString("Arg_WrongType", key, targetType), "key");
17  }
18 
19  internal static void ThrowWrongValueTypeArgumentException(object value, Type targetType)
20  {
21  throw new ArgumentException(Environment.GetResourceString("Arg_WrongType", value, targetType), "value");
22  }
23 
24  internal static void ThrowKeyNotFoundException()
25  {
26  throw new KeyNotFoundException();
27  }
28 
29  internal static void ThrowArgumentException(ExceptionResource resource)
30  {
31  throw new ArgumentException(Environment.GetResourceString(GetResourceName(resource)));
32  }
33 
34  internal static void ThrowArgumentException(ExceptionResource resource, ExceptionArgument argument)
35  {
36  throw new ArgumentException(Environment.GetResourceString(GetResourceName(resource)), GetArgumentName(argument));
37  }
38 
39  internal static void ThrowArgumentNullException(ExceptionArgument argument)
40  {
41  throw new ArgumentNullException(GetArgumentName(argument));
42  }
43 
44  internal static void ThrowArgumentOutOfRangeException(ExceptionArgument argument)
45  {
46  throw new ArgumentOutOfRangeException(GetArgumentName(argument));
47  }
48 
49  internal static void ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
50  {
51  if (CompatibilitySwitches.IsAppEarlierThanWindowsPhone8)
52  {
53  throw new ArgumentOutOfRangeException(GetArgumentName(argument), string.Empty);
54  }
55  throw new ArgumentOutOfRangeException(GetArgumentName(argument), Environment.GetResourceString(GetResourceName(resource)));
56  }
57 
58  internal static void ThrowInvalidOperationException(ExceptionResource resource)
59  {
60  throw new InvalidOperationException(Environment.GetResourceString(GetResourceName(resource)));
61  }
62 
63  internal static void ThrowSerializationException(ExceptionResource resource)
64  {
65  throw new SerializationException(Environment.GetResourceString(GetResourceName(resource)));
66  }
67 
68  internal static void ThrowSecurityException(ExceptionResource resource)
69  {
70  throw new SecurityException(Environment.GetResourceString(GetResourceName(resource)));
71  }
72 
73  internal static void ThrowNotSupportedException(ExceptionResource resource)
74  {
75  throw new NotSupportedException(Environment.GetResourceString(GetResourceName(resource)));
76  }
77 
78  internal static void ThrowUnauthorizedAccessException(ExceptionResource resource)
79  {
80  throw new UnauthorizedAccessException(Environment.GetResourceString(GetResourceName(resource)));
81  }
82 
83  internal static void ThrowObjectDisposedException(string objectName, ExceptionResource resource)
84  {
85  throw new ObjectDisposedException(objectName, Environment.GetResourceString(GetResourceName(resource)));
86  }
87 
88  internal static void IfNullAndNullsAreIllegalThenThrow<T>(object value, ExceptionArgument argName)
89  {
90  if (value == null && default(T) != null)
91  {
92  ThrowArgumentNullException(argName);
93  }
94  }
95 
96  internal static string GetArgumentName(ExceptionArgument argument)
97  {
98  string text = null;
99  switch (argument)
100  {
101  case ExceptionArgument.array:
102  return "array";
103  case ExceptionArgument.arrayIndex:
104  return "arrayIndex";
105  case ExceptionArgument.capacity:
106  return "capacity";
107  case ExceptionArgument.collection:
108  return "collection";
109  case ExceptionArgument.list:
110  return "list";
111  case ExceptionArgument.converter:
112  return "converter";
113  case ExceptionArgument.count:
114  return "count";
115  case ExceptionArgument.dictionary:
116  return "dictionary";
117  case ExceptionArgument.dictionaryCreationThreshold:
118  return "dictionaryCreationThreshold";
119  case ExceptionArgument.index:
120  return "index";
121  case ExceptionArgument.info:
122  return "info";
123  case ExceptionArgument.key:
124  return "key";
125  case ExceptionArgument.match:
126  return "match";
127  case ExceptionArgument.obj:
128  return "obj";
129  case ExceptionArgument.queue:
130  return "queue";
131  case ExceptionArgument.stack:
132  return "stack";
133  case ExceptionArgument.startIndex:
134  return "startIndex";
135  case ExceptionArgument.value:
136  return "value";
137  case ExceptionArgument.name:
138  return "name";
139  case ExceptionArgument.mode:
140  return "mode";
141  case ExceptionArgument.item:
142  return "item";
143  case ExceptionArgument.options:
144  return "options";
145  case ExceptionArgument.view:
146  return "view";
147  case ExceptionArgument.sourceBytesToCopy:
148  return "sourceBytesToCopy";
149  default:
150  return string.Empty;
151  }
152  }
153 
154  internal static string GetResourceName(ExceptionResource resource)
155  {
156  string text = null;
157  switch (resource)
158  {
159  case ExceptionResource.Argument_ImplementIComparable:
160  return "Argument_ImplementIComparable";
161  case ExceptionResource.Argument_AddingDuplicate:
162  return "Argument_AddingDuplicate";
163  case ExceptionResource.ArgumentOutOfRange_BiggerThanCollection:
164  return "ArgumentOutOfRange_BiggerThanCollection";
165  case ExceptionResource.ArgumentOutOfRange_Count:
166  return "ArgumentOutOfRange_Count";
167  case ExceptionResource.ArgumentOutOfRange_Index:
168  return "ArgumentOutOfRange_Index";
169  case ExceptionResource.ArgumentOutOfRange_InvalidThreshold:
170  return "ArgumentOutOfRange_InvalidThreshold";
171  case ExceptionResource.ArgumentOutOfRange_ListInsert:
172  return "ArgumentOutOfRange_ListInsert";
173  case ExceptionResource.ArgumentOutOfRange_NeedNonNegNum:
174  return "ArgumentOutOfRange_NeedNonNegNum";
175  case ExceptionResource.ArgumentOutOfRange_SmallCapacity:
176  return "ArgumentOutOfRange_SmallCapacity";
177  case ExceptionResource.Arg_ArrayPlusOffTooSmall:
178  return "Arg_ArrayPlusOffTooSmall";
179  case ExceptionResource.Arg_RankMultiDimNotSupported:
180  return "Arg_RankMultiDimNotSupported";
181  case ExceptionResource.Arg_NonZeroLowerBound:
182  return "Arg_NonZeroLowerBound";
183  case ExceptionResource.Argument_InvalidArrayType:
184  return "Argument_InvalidArrayType";
185  case ExceptionResource.Argument_InvalidOffLen:
186  return "Argument_InvalidOffLen";
187  case ExceptionResource.Argument_ItemNotExist:
188  return "Argument_ItemNotExist";
189  case ExceptionResource.InvalidOperation_CannotRemoveFromStackOrQueue:
190  return "InvalidOperation_CannotRemoveFromStackOrQueue";
191  case ExceptionResource.InvalidOperation_EmptyQueue:
192  return "InvalidOperation_EmptyQueue";
193  case ExceptionResource.InvalidOperation_EnumOpCantHappen:
194  return "InvalidOperation_EnumOpCantHappen";
195  case ExceptionResource.InvalidOperation_EnumFailedVersion:
196  return "InvalidOperation_EnumFailedVersion";
197  case ExceptionResource.InvalidOperation_EmptyStack:
198  return "InvalidOperation_EmptyStack";
199  case ExceptionResource.InvalidOperation_EnumNotStarted:
200  return "InvalidOperation_EnumNotStarted";
201  case ExceptionResource.InvalidOperation_EnumEnded:
202  return "InvalidOperation_EnumEnded";
203  case ExceptionResource.NotSupported_KeyCollectionSet:
204  return "NotSupported_KeyCollectionSet";
205  case ExceptionResource.NotSupported_ReadOnlyCollection:
206  return "NotSupported_ReadOnlyCollection";
207  case ExceptionResource.NotSupported_ValueCollectionSet:
208  return "NotSupported_ValueCollectionSet";
209  case ExceptionResource.NotSupported_SortedListNestedWrite:
210  return "NotSupported_SortedListNestedWrite";
211  case ExceptionResource.Serialization_InvalidOnDeser:
212  return "Serialization_InvalidOnDeser";
213  case ExceptionResource.Serialization_MissingKeys:
214  return "Serialization_MissingKeys";
215  case ExceptionResource.Serialization_NullKey:
216  return "Serialization_NullKey";
217  case ExceptionResource.Argument_InvalidType:
218  return "Argument_InvalidType";
219  case ExceptionResource.Argument_InvalidArgumentForComparison:
220  return "Argument_InvalidArgumentForComparison";
221  case ExceptionResource.InvalidOperation_NoValue:
222  return "InvalidOperation_NoValue";
223  case ExceptionResource.InvalidOperation_RegRemoveSubKey:
224  return "InvalidOperation_RegRemoveSubKey";
225  case ExceptionResource.Arg_RegSubKeyAbsent:
226  return "Arg_RegSubKeyAbsent";
227  case ExceptionResource.Arg_RegSubKeyValueAbsent:
228  return "Arg_RegSubKeyValueAbsent";
229  case ExceptionResource.Arg_RegKeyDelHive:
230  return "Arg_RegKeyDelHive";
231  case ExceptionResource.Security_RegistryPermission:
232  return "Security_RegistryPermission";
233  case ExceptionResource.Arg_RegSetStrArrNull:
234  return "Arg_RegSetStrArrNull";
235  case ExceptionResource.Arg_RegSetMismatchedKind:
236  return "Arg_RegSetMismatchedKind";
237  case ExceptionResource.UnauthorizedAccess_RegistryNoWrite:
238  return "UnauthorizedAccess_RegistryNoWrite";
239  case ExceptionResource.ObjectDisposed_RegKeyClosed:
240  return "ObjectDisposed_RegKeyClosed";
241  case ExceptionResource.Arg_RegKeyStrLenBug:
242  return "Arg_RegKeyStrLenBug";
243  case ExceptionResource.Argument_InvalidRegistryKeyPermissionCheck:
244  return "Argument_InvalidRegistryKeyPermissionCheck";
245  case ExceptionResource.NotSupported_InComparableType:
246  return "NotSupported_InComparableType";
247  case ExceptionResource.Argument_InvalidRegistryOptionsCheck:
248  return "Argument_InvalidRegistryOptionsCheck";
249  case ExceptionResource.Argument_InvalidRegistryViewCheck:
250  return "Argument_InvalidRegistryViewCheck";
251  default:
252  return string.Empty;
253  }
254  }
255  }
256 }
Definition: __Canon.cs:3
The exception that is thrown when the key specified for accessing an element in a collection does not...
The exception thrown when an error occurs during serialization or deserialization.
The exception that is thrown when a security error is detected.