Представьте себе классический пример: пользователь нажимает кнопку в представлении, которое вызывает код с бизнес-уровня, который вызывает код с уровня доступа к данным, который возвращает данные. в бизнес, которые возвращаются к представлению.
Я хочу составить сообщение журнала с помощью этих слоев. Вызывающий метод (в представлении), который запустил весь процесс, получит полное сообщение. Вот несколько примеров кода, которые помогут мне объяснить, чего я пытаюсь достичь.
Код: Выделить всё
public void ViewMethod()
{
try
{
BusinessMethod();
}
catch (Exception ex)
{
Logger.Enqueue("exception occurred");
Logger.Print();
}
}
public void BusinessMethod()
{
try
{
DataAccessMethod();
}
catch (Exception ex)
{
Logger.Enqueue("Exception occurred in the business method")
}
}
public void DataAccessMethod()
{
try
{
// some code that executes an SQL command
// Log the SQL Command 1
// Log the SQL Command 2 and do on...
}
catch (Exception ex)
{
Logger.Enqueue("Error occurred, SQL executed is ...", sqlExecuted);
}
}
Мой вопрос: есть ли какой-либо шаблон проектирования для его разработки или допустима ли передача ссылки на Logger через «уровни»?
Подробнее здесь: https://stackoverflow.com/questions/469 ... exceptions
Мобильная версия