Если атрибут custom отсутствует, он не будет соответствовать исключению System
.
Вы можете использовать системное исключение, но какой у вас домен? И какой контракт нарушен? Имеет значение, если речь идет о сериализации или тестировании или ...
Редактировать после добавления foo
. Самое близкое к вам исключение System - System.ArgumentException, поскольку ваш движок получает параметр, который не соответствует его требованиям.
Но я бы определил свое собственное исключение MissingExpectedAttribute
.