Итак, я застрял на небольшой проблеме.Мне было любопытно, если бы у кого-то был какой-то дополнительный вклад, который они могли бы дать в этом проекте.
У меня есть интерфейс ILog, в котором есть два метода, представленные для части регистрации кода ошибок в проекте.FlagError и GetErrorCode;FlagError устанавливает бит в целое число, каждый бит, представляющий, что была выдана определенная ошибка., GetErrorCode (который был бы возвращаемым значением для метода Main) возвращает указанное целое число.
Сначала я предположил, используяenum
в каждом приложении, чтобы содержать список возможных кодов ошибок.
Но проблема в том, как именно я бы передал пользователям, что код ошибки 'XYZ' означает, что приложение попадало в эти ненормальные состояния во времядружественное выполнение?
Интерфейс ILog: (Методы записи имеют перегрузки)
interface ILog
{
void FlagError (int errorCode);
int GetErrorCode ();
#region Other ILog Methods
void WriteError(string message);
void WriteWarning(string message);
void WriteInfo(string message);
void WriteDebug(string message);
#endregion
}
Класс журнала:
abstract class Log : ILog
{
public void
FlagError (int errorCode)
{
if (errorCode == 0 || errorCode == int.MinValue || errorCode != (errorCode & -errorCode))
{
throw new IndexOutOfRangeException ();
}
if ((m_errorCode & errorCode) == errorCode)
return;
m_errorCode += errorCode;
}
public int
GetErrorCode ()
{
return m_errorCode;
}
#region Other ILog Methods
}
Я предположил использование атрибута для каждого перечислениязначение с описанием этой ошибки, а затем просто небольшой процесс или что-то, чтобы помочь «разобрать» код ошибки в удобочитаемом описании.
Но, ИДК, есть идеи?