У меня есть код, который выглядит так:
private static DirectiveNode CreateInstance(Type nodeType, DirectiveInfo info) {
var ctor = nodeType.GetConstructor(new[] { typeof(DirectiveInfo) });
if(ctor == null) {
throw new MissingMethodException(nodeType.FullName, "ctor");
}
var node = ctor.Invoke(new[] { info }) as DirectiveNode;
if(node == null) {
// ???;
}
return node;
}
Я ищу что делать (например, какой тип исключения генерировать), когда метод Invoke
возвращает что-то, что не является DirectiveNode
, или когда он возвращает null
(обозначено // ???
выше) .
(Согласно контракту метода, nodeType
всегда будет описывать подкласс DirectiveNode
.)
Я не уверен, что при вызове конструктора вернется null
, поэтому я не уверен, должен ли я вообще что-либо обрабатывать, но я все еще хочу быть в безопасности и выдавать исключение, если что-то идет не так.