Когда вы поймаете ошибку, вы можете переупаковать ее, а затем выбросить другую ошибку, на самом базовом уровне вы можете просто добавить больше данных, но, из того, что вы предложили, вы также можете заменить общую ошибку с пользовательской ошибкой, которая, хотя она не будет преодолевать ограничения ответа, которые вы получили от этого компонента, даст код, увеличивающий стек вызовов, возможность ответить более адекватно.
Так что в плане просто добавить информацию в самом основной форме - бросая новое исключение с некоторым дополнительным текстом, пока еще проходит первоначальное исключение:
catch (Exception ex)
{
throw new Exception("This is more about where the exception occurred", ex);
}
Теперь, если вы хотите определить свой собственный исключение компонента вы меняете new Exception
на новый ComponentSpecificException
, добавляя данные по мере необходимости к конструктору, но never забывая установить внутреннее исключение. Исключения также содержат сбор данных о парах ключей, значений, в которые вы можете вставить больше информации (путем создания исключения, добавления данных, а затем выполнения броска).
Это все довольно общий - работающий оттуда, где вы не можете предугадать все исключения, с которыми вам приходится обращаться, не пытайтесь - вы настраиваете ведение журнала, чтобы вы знали, когда у вас есть общее исключение т.е. тот, который попадает в конечный улов, а затем со временем добавляет особые особые уловы выше общего, чтобы обеспечить более подходящие ответы или, по крайней мере, упаковать ошибку в менее общие пользовательские исключения.
Не уверен, что я это очень хорошо объяснил, но, по-видимому, так как трудно предвидеть любую возможную ошибку, вы хотите иметь стратегию для разработки своего приложения систематически, когда вы обнаружите новые исключения.
Похоже на звуковое решение. –
Является ли компонент переупаковкой всех исключений в System.Exception? Если бы вы не справились с обычными уловами. Если это хотя ... удачи. – asawyer
Просто нет. Вы не представляете, насколько серьезным является это исключение. –