Сообщения об ошибках C# MessageBox

В моем приложении я использую окна сообщения для отображения информации об ошибке.

try
{
   // Something...
}
catch (SystemException ex)
{
   MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

Это было прекрасно сначала, но поскольку моя программа растет, становится все больше трудным найти блок try-catch, где эта ошибка сгенерирована. Существует ли способ отобразить строку кода или функцию, в которой была сгенерирована ошибка? Я использую Microsoft Visual C# 2008 Express Edition.Спасибо.

6
задан Jim Fell 7 May 2010 в 15:26
поделиться

6 ответов

Это даст вам МНОГО информации о методе, вызвавшем ошибку (трассировка стека)

MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
6
ответ дан 17 December 2019 в 00:05
поделиться

Существует Exception.StackTrace , что часто бывает слишком много для окна сообщения. Также может оказаться полезным Exception.TargetSite.Name .

0
ответ дан 17 December 2019 в 00:05
поделиться

вы хотите просмотреть ex.StackTrace (), который предоставит вам полную информацию о местонахождении сгенерированного исключения. Вы также можете проверить InnerException.

0
ответ дан 17 December 2019 в 00:05
поделиться

Просто отобразите Exception.StackTrace . Он будет содержать всевозможную полезную информацию, которая должна помочь вам найти проблемную строку кода.

1
ответ дан 17 December 2019 в 00:05
поделиться

Почему бы вам не добавить дополнительную информацию в сообщение об ошибке, чтобы облегчить ее поиск? Вы можете добавить еще текст после строки «Ошибка» в зависимости от того, где создается окно сообщения.

Вызываемое исключение содержит несколько функций, позволяющих получить более подробное объяснение ошибки.

0
ответ дан 17 December 2019 в 00:05
поделиться

Есть несколько вариантов, которые вам доступны.

  1. Поместите что-нибудь в свое окно сообщения, если вы хотите предоставить контекстную информацию
  2. Показать информацию трассировки стека, если в отладочную сборку будут включены номера строк

Однако я бы предостерегал от этой практики, если вы обнаружив, что вы получаете слишком много и не можете понять, где, я бы начал смотреть на реструктуризацию вашего кода, чтобы убедиться, что у вас нет проблем.

0
ответ дан 17 December 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: