Я пишу некоторые рекомендации по обработке исключений, основанные на нескольких источниках в Интернете. С веб-страницы Microsoft (https://msdn.microsoft.com/en-us/library/seyhszts(v=vs.110).aspx) я получил рекомендацию:Где лучше всего разместить бросок в коде
«Трассировка стека начинается с инструкции, в которой исключение генерируется и заканчивается в выводе catch, который ловит исключение. Помните об этом, когда решаете, где разместить выступление ».
Я не очень понимаю, что это значит. Можем ли мы сказать, что лучшее место для «броска» как можно ближе к рассматриваемому вызову? Это правильно или у кого-нибудь есть другие предложения?
Редактировать: Я буду более точным. Смотрите следующий псевдокод ниже
// do something that assignes a value to 'someValue'
// do more that's not related to the call above
if (someValue == whatever)
{
throw new MyException();
}
я предполагаю, когда я бросал исключение после того, как делать что-то еще после вызова в вопросе (сделать что-то), я не буду получать правильный след стека указывает мне на прямой линии , Я прав?
Извинения за то, что они звучат грубо, но если вы не понимаете, что это значит, вы, вероятно, не лучше всего определяете «лучшие» практики. –
Бросьте экскремент, где дальнейшая работа не применима, обычно это происходит с ошибкой. – HimBromBeere
Лучшее место? Конечно, внутри блока try или любого метода, который выполняется внутри блока try. Под этим я имею в виду, где еще вы могли бы это выразить? – jmc