Из того, что я прочитал, это было одной из основных причин, по которой команда C # решила не реализовывать проверенные исключения, подобные Java - они хотели не допустить такого рода обработки исключений.
В Visual Studio нет средств для внутренней автоматизации такой операции, и вы не должны пытаться это делать; если вы не знаете, как обрабатывать конкретное исключение, не отлавливайте его только потому, что библиотека может его выбросить.
Кроме того, существуют всевозможные особые системные исключения, которые могут генерироваться платформой, такие как OutOfMemoryException
, BadImageFormatException
, AppDomainUnloadedException
и т. Д., Которые не генерируются напрямую конкретным методом. вы вызываете, но пробиваетесь через это из среды выполнения .NET. Если бы вы хотели поймать все возможных исключений, вам бы пришлось их также отловить, но по большей части это было бы бесполезным упражнением, поскольку вы мало что можете сделать, когда получите StackOverflowException
- и опять же, как правило, вы не должны пытаться.
В заключение, лучший способ написать обработчики исключений для библиотечных методов (и любых других методов) - это прочитать документацию по указанному методу, которая сообщит вам, какие исключения вы можете ожидать, и затем перехватить только те, которые вы действительно ожидаете и / или знаете, как справиться. не поймайте общий System.Exception
, если только вы не хотите впечатляющих сбоев и таинственного повреждения данных в конце производственного цикла.