Если вы не предпринимаете никаких попыток восстановления после ошибки, вы можете просто выбросить Exception
со строкой, чтобы сообщить вам, что пошло не так.(Или если вы будете выполнять одно и то же действие независимо от того, какая ошибка произошла).
Кроме того, что для программиста становится очевидным, что пошло не так, используя новое имя исключения, а не помещая его в Сообщение, и исключение можетсодержат данные, которые помогут вам восстановиться после определенного исключения.
Например, ArgumentNullException
имеет свойство ParamName
, которое вы должны установить при создании исключения.Когда вызывающий объект улавливает его, он может найти это свойство и принять решение передать новое значение для аргумента, вызвавшего ошибку, или может вывести соответствующую ошибку, чтобы сообщить программисту, что произошло не так.
К сожалению, это не так.что исключения редко используются в полной мере (во многих API с открытым исходным кодом и т. д.) и часто просто вставляются, чтобы сообщить программисту, что пошло не так.Между этими двумя значениями нет большой разницы, если вы не планируете читать свойство ParamName
при его обнаружении.(Многие люди не будут беспокоиться, и все равно поймают Exception
).
throw new ArgumentNullException("arg1");
throw new Exception("arg1 is null");
Может быть трудно полностью восстановиться после ошибки, но в некоторых приложениях может потребоваться создатьпользовательские исключения, которые могут предоставить всю необходимую вам информацию.
А сейчас я бы просто добавил Exception
в поиск объектов Object в VS и посмотрел, что там уже есть.Их имена говорят сами за себя, поэтому вы должны выбрать что-нибудь подходящее.