При возникновении исключения подразумевается, что ваша программа при определенных обстоятельствах говорит, что она не может нормально работать и должна прерваться.Вы делаете это так:
if (conditionMet)
throw new Exception();
Чтобы быть более конкретным, вы можете использовать более конкретные исключения, такие как InvalidOperationException, NullReferenceException и т. Д. Иногда вам может понадобиться использовать еще более конкретное исключение, и именно при создании вашегоТип исключения, производный от базового System.Exception.Представьте, что пользовательское исключение, которое вы создаете, является контейнером для условия, в котором была ваша программа.В вашем случае условие состоит в том, что был передан неверный номер, поэтому вы создаете контейнер InvalidNumberException, который вы используете вместо общего исключения, описанного выше.
Всякий раз, когда CLR выполняет оператор «throw new», он прерываетвыполнение текущего пути кода и будет искать операторы catch, которые могут обработать это исключение.
Таким образом, ваш код может выглядеть следующим образом:
try
{
if (number == 5)
throw new InvalidNumberException();
}
catch (InvalidNumberException e)
{
System.Console.WriteLine("Hey I got an InvalidNumberException");
}