Suppose I want to throw a new exception when invoking a generic method with a type that doesn't have a required attribute. Is there a .NET exception that's appropriate for this situation, or, more likely, one that would be a suitable ancestor for a custom exception?
For example:
public static class ClassA
{
public static T DoSomething<T>(string p)
{
Type returnType = typeof(T);
object[] typeAttributes = returnType.GetCustomAttributes(typeof(SerializableAttribute), true);
if ((typeAttributes == null) || (typeAttributes.Length == 0))
{
// Is there an exception type in the framework that I should use/inherit from here?
throw new Exception("This class doesn't support blah blah blah");
// Maybe ArgumentException? That doesn't seem to fit right.
}
}
}
Thanks.