Операторы try, throw и catch
Операторы try, throw и catch
Оператор try открывает блок кода, в котором может произойти ошибка. Если ошибка произошла, то оператор throw вызывает исключение. Исключение обрабатывается специальным обработчиком исключений. Обработчик исключения представляет собой блок кода, который начинается оператором catch.
Допустим ваше приложение должно вычислять значение выражения res = 100 / (num * (num – 7)). Если вы зададите значение переменной num, равное 0 или 7, то произойдет ошибка деления на нуль. Участок программы, в котором может случиться ошибка, объединим в блок оператора try. Вставим перед вычислением выражения проверку переменной nem на равенство нулю и семи. Если переменная num примет запрещенные значения, вызовем исключение, воспользовавшись оператором throw.
Сразу после блока try поместите обработчик исключения catch. Он будет вызываться в случае ошибки.
Пример такой программы, получившей название Exception, мы привели в листинге 1.1. Программа Exception принимает от пользователя значение переменной num, а затем вычисляет выражение res = 100 / (num * (num – 7)) и отображает полученный результат на экране.
В случае, если пользователь введет число 0 или 7, тогда вызывается исключение throw. В качестве параметра оператору throw указывается переменная num. Заметим, что так как переменная num имеет тип long, считается что данное исключение также будет иметь тип long.
После вызова оператора throw управление сразу передается обработчику исключения соответствующего типа. Определенный нами обработчик отображает на экране строку "Exception, num = ", а затем выводит значение переменной num.
После обработки исключения, управление не возвращается в блок try, а передается оператору, следующему после блока catch данного обработчика исключения. Программа выведет на экран строку “Stop program” и завершит свою работу.
Если пользователь введет разрешенные значения для переменной num, тогда исключение не вызывается. Программа вычислит значение res и отобразит его на экране. В этом случае обработчик исключения не выполнится и управление перейдет на оператор, следующий за блоком обработки исключения. Программа выведет на экран строку “Stop program” и завершит работу.
Листинг 1.1. Файл Exception.cpp
#include <iostream.h>
int main() {
long num = 7;
long res = 0;
// Введите число num
cout << "Input number: ";
cin >> num;
// Блок try, из которого можно вызвать исключение
try {
if ((num == 7) || (num == 0))
// Если переменная num содержит значение 0 или 7,
// тогда вызываем исключение типа float
throw num;
// Значения num равные 0 или 7 вызовут ошибку
// деления на нуль в следующем выражении
res = 100 / (num * (num – 7));
// Отображаем на экране результат вычисления
cout << "Result = " << res << endl;
}
// Обработчик исключения типа float
catch(long num) {
// Отображаем на экране значение переменной num
cout << "Exception, num = " << num << endl;
}
cout << "Stop program" << endl;
return 0;
}
В определении обработчика сообщения можно не указывать имя переменной и ограничиться только названием типа. Так, обработчик в предыдущем примере может выглядеть следующим образом:
catch(long) {
// Отображаем на экране значение переменной num
cout << "Exception, num = " << num << endl;
}
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Операторы отношения и логические операторы
Операторы отношения и логические операторы Операторы отношения используются для сравнения значений двух переменных. Эти операторы, описанные в табл. П2.11, могут возвращать только логические значения true или false.Таблица П2.11. Операторы отношения Оператор Условие, при
Операторы
Операторы Операторов язык JavaScript поддерживает очень много — на все случаи жизни. Их можно разделить на несколько групп. Арифметические операторы Арифметические операторы служат для выполнения арифметических действий над числами. Все арифметические операторы,
5.3.3 Операторы && и ||
5.3.3 Операторы && и || Операторы и || являются управляющими операторами. Если в командной строке стоит command1 command2, то command2 выполняется в том, и только в том случае, если статус выхода из команды command1 равен нулю, что говорит об успешном ее завершении. Аналогично, если
5.5.1 Операторы ›, ‹ и ››
5.5.1 Операторы ›, ‹ и ›› Для обозначения перенаправления используются символы "›", "‹" и "››". Чаще всего используется перенаправление вывода команды в файл. Вот соответствующий пример:[user]$ ls -l › /home/jim/dir.txtПо этой команде в файле /home/jim/dir.txt будет сохранен перечень файлов и
Catch
Catch Описание: function Catch(var CatchBuf): Integer;Копиpует состояние всех pегистpов системы и указатель команды в CatchBuf.Паpаметpы:CatchBuf: TCatchBuf для копиpования сpеды выполнения.Возвpащаемое значение:Нуль, если сpеда скопиpована.См. также:
Throw
Throw Описание: function Throw(var CatchBuf: TCatchBuf; ThrowBack:: Integer);Восстанавливает сpеду выполнения пpикладной задачи. Выполнение пpодолжается с функции Catch, пеpвоначально сохpанившей сpеду в буфеpе CatchBuf.Паpаметpы:CatchBuf: TCatchBuf, содеpжащая сpеду выполнения.ThrowBack: Значение, возвpащаемое функции
4. ОПЕРАТОРЫ
4. ОПЕРАТОРЫ Операторы в языке Java — это специальные символы, которые сообщают транслятору о том, что вы хотите выполнить операцию с некоторыми операндами. Типы операций указываются с помощью операторов, а операнды - это переменные, выражения или литералы. Некоторые
R.17.6 Операторы
R.17.6 Операторы оператор: помеченный-оператор оператор-выражение составной-оператор выбирающий-оператор оператор-цикла оператор-перехода оператор-описанияпомеченный-оператор: идентификатор : оператор case выражение-константа : оператор default :
Операторы
Операторы Оператор — это конструкция языка Object Pascal, выполняющая определенную операцию. Все операторы можно разбить на несколько
Общие операторы catch
Общие операторы catch В C# также поддерживается "общий" блок catch, который не получает явно объект исключения, генерируемый данным членом.// Блок catch общего вида.static void Main(string[] args) { … try { for (int i = 0; i ‹ 10; i++) myCar.Accelerate(10); } catch { Console.WriteLine("Случилось что-то ужасное…"); } … }Очевидно,
Операторы
Операторы Операторы служат основными строительными блоками программы. Программа состоит из последовательности операторов с добавлением небольшого количества знаков пунктуации. Оператор является законченной инструкцией для компьютера. В языке Си указанием на
ОПЕРАТОРЫ
ОПЕРАТОРЫ Введение Операторы языка Си управляют процессом выполнения программы. Набор операторов языка Си содержит все управляющие конструкции структурного программирования. Ниже представлен полный список операторов:пустой операторсоставной оператор или
Операторы SQL
Операторы SQL Оператор SQL используется для выполнения запроса к базе данных. Язык запросов выражается в операторах, которые задают цель: что должно быть сделано (операция), объекты, с которыми это должно быть сделано, и детализация, как это должно быть сделано. По теории
Операторы SQL
Операторы SQL Синтаксис SQL Firebird включает операторы для сравнения и вычисления значений столбцов, констант, переменных и выражений встраиваемого SQL для получения различных утверждений. Приоритет операторов Приоритет определяет порядок, в котором операторы и создаваемые
8.1. Операторы
8.1. Операторы присваиваниеvariable assignmentИнициализация переменной или изменение ее значения=Универсальный оператор присваивания, пригоден как для сравнения целых чисел, так и для сравнения строк.var=27category=minerals # Пробелы до и после оператора "=" -- недопустимы. Пусть вас не