При использовании контракта кода, как мне зарегистрировать утверждение, вызывающее сбой рассматриваемого метода?
Если вы говорите о ведении журнала, я предполагаю, что вы имеете в виду во время выполнения, а нестатическая проверка.
Утверждения вызывают исключения, когда они терпят неудачу.Вы можете написать блок try / catch для регистрации исключений:
try
{
bool result = SomeClass.IsMatch(x, y);
}
catch(Exception e)
{
logger.Error(e.ToString()); // Use whatever logging mechanism here
throw; // Note: Make sure you rethrow if you catch "Exception e"
}
Это даст вам трассировку стека исключения, которая будет указывать на строку, в которой завершилась ошибка.
КакУказанная политика, вы также можете включить параметр userMessage
в каждое утверждение.Таким образом, ваши журналы будут содержать пользовательские сообщения об ошибках в дополнение к трассировке стека.
Если вам нужен хороший класс logger
, посмотрите библиотека NLog .