В настоящее время у меня есть приложение, которое имеет следующий пример кода пути.
class A
{
private readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(A));
public void FunctionA()
{
try
{
B test = new B();
test.FunctionB();
}
catch (Exception ex)
{
//handle error ends up here but message is null ref error?
log.error(ex.Message);
}
}
}
class B
{
private readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(B));
public void FunctionB()
{
try
{
//here a custom library function is called that
//That handles serialized xml data
//that also has a try catch
}
catch (Exception ex)
{
//handle error correct error is lost as it falls back to Class A functionA
log.Error($"Error Encountered During Data operation: {SPID_EX.Message}, \r\n\r\nInner Exception: {SPID_EX.InnerException.Message}");
}
}
}
Проблема в том, что я пытаюсь обработать ошибку в блоке перехвата функции B.
Однако, если исключение возникает в вызываемой библиотеке через функцию B или во время выполнения в функции B, ошибка заканчивается в блоке перехвата функции A; поэтому код обработки, который у меня есть в функции B catch, кажется пропущенным, хотя при переходе через него он входит в функцию B catch и достигает log.error ... затем возвращается к функции A и в журналах не выводится сообщение от B?
Что мне здесь не хватает, чтобы обработать функцию и продолжить выполнение?
Большое спасибо
EDIT:
Добавлена следующая строка в FunctionB на основе комментариев:
log.Info("Testing123");
вывод:
2018-11-03 01:04:09,361 INFO - Testing123
кажется, что журнал реализован правильно ..: (