When we wrap a bunch of statements in a try/catch and one of these issues an exception, within the catch we have no way of knowing which of the statements caused the exception (the ex.stacktrace shows our current method (doit), its caller, its caller's caller, etc. but neither do1 or do2):
function doit() {
try {
do1();
do2();
[...]
}
catch (Exception ex) {
// what failed?
}
}
< /code>
Обычно я взял на себя обертывание всех операторов и переосмысления, вроде: < /p>
private void do1() {
try {
// do whatever
} catch(Exception e) {
// write to my error log
throw new Exception("do1: " + e.Message, e.InnerException);
}
}
< /code>
, который оставляет след хлебных крошек в моем журнале и делает цепочку доступной для восходящего по течению. Проблема, конечно, заключается в том, что мне нужно обернуть каждый метод < /em>, который я пишу с таком кодом. Какой подход?>
Подробнее здесь: https://stackoverflow.com/questions/112 ... very-class
Попробовать/поймать в каждом методе каждого класса? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение