«Бросок» исключения - это то, что запускает весь процесс обработки исключений.
В ходе обычного выполнения строки в программе выполняются последовательно с циклами и ветвями. Когда происходит какая-либо ошибка, создается исключение, а затем выдается.
Сгенерированное исключение изменит обычный порядок операций в программе таким образом, что никакие "нормальные" инструкции не будут выполняться, пока исключение не будет обработано где-либо в блоке "catch". Как только исключение перехватывается в блоке catch, и выполняется код в этом блоке catch («Обработка» исключения), нормальное выполнение программы возобновляется сразу же после блока catch.
// Do some stuff, an exception thrown here won't be caught.
try
{
// Do stuff
throw new InvalidOperationException("Some state was invalid.");
// Nothing here will be executed because the exception has been thrown
}
catch(InvalidOperationException ex) // Catch and handle the exception
{
// This code is responsible for dealing with the error condition
// that prompted the exception to be thrown. We choose to name
// the exception "ex" in this block.
}
// This code will continue to execute as usual because the exception
// has been handled.