Трассировка стека catch/throw теряет номер строки с ошибкойC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Трассировка стека catch/throw теряет номер строки с ошибкой

Сообщение Anonymous »


Я попробовал несколько предложений о том, как сохранить правильный номер строки в трассировке стека при возникновении исключения. Самый распространенный вариант — просто поймать и бросить, но это не работает. Вот некоторые из них, которые я пробовал:

private void button1_Click(отправитель объекта, EventArgs e) { пытаться { тест(); } поймать (Исключение ex) { MessageBox.Show(ex.ToString()); } } частный тест на недействительность() { пытаться { интервал а = 1; интервал б = 0; интервал х = 0; х = а/б; } ловить { бросать; } } И несколько вариантов блока catch.

catch (Исключение) { бросать; } поймать (Исключение e) { бросать; } поймать (Исключение e) { бросить е; } Все эти сообщения сообщают об ошибке в строке throw и строке окна сообщения — никогда в строке, которая делится на 0. Если я ворвусь в функцию test(), она покажет правильную строку #, но после вызова это произойдет нет. Единственный способ, который сработал, — это не использовать try/catch в функции test(). Но, конечно, я хочу иметь возможность ловить ошибки и повторно выдавать их, сохраняя правильную трассировку стека. Так как же это делается?

Спасибо.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»