Генерирование вторичных исключений
Генерирование вторичных исключений
Вы должны знать, что в рамках логики try имеется возможность генерировать исключение для вызывающей стороны, находящейся выше по цепочке вызовов в стеке вызовов. Для этого просто используйте ключевое слово throw в рамках блока сatch. Тем самым исключение будет направлено выше по цепочке логики вызовов, что может быть полезно тогда, когда данный блок catch не имеет возможности полностью обработать возникшую ошибку.
// Перекладывание ответственности.
static void Main (string[] args) {
…
try {
// Логика ускорения автомобиля… }
catch(CarIsDeadException e) {
// Частичная обработка ошибки и перенаправление.
// Здесь перенаправляется входной объект CarIsDeadException.
// Но можно генерировать и другое исключение.
throw e;
}
…
}
Вы должны понимать, что в данном примере программного кода конечным получателем CarIsDeadException является среда CLR, поскольку здесь вторичное исключение генерируется методом Main(). Поэтому вашему конечному пользователю будет представлено системное диалоговое окно с информацией об ошибке. Как правило, вторично сгенерированное и частично обработанное исключение предъявляется вызывающей стороне, которая имеет возможность обработать его более "грациозно".
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Генерирование полосы навигации
Генерирование полосы навигации Теперь можно заняться кодом, генерирующим вложенные списки в полосе навигации.Снова откроем Web-страницу index.htm в Блокноте, если уже ее закрыли. Удалим весь HTML-код, формирующий пункты вложенных списков в полосе навигации, но оставим фрагмент,
Генерирование полосы навигации
Генерирование полосы навигации Теперь можно заняться кодом, генерирующим вложенные списки в полосе навигации.Снова откроем Web-страницу index.htm в Блокноте, если уже ее закрыли. Удалим весь HTML-код, формирующий пункты вложенных списков в полосе навигации, но оставим фрагмент,
12.5.3. Генерирование сертификатов
12.5.3. Генерирование сертификатов Сертификат гарантирует безопасное подключение к Web-серверам и (или) удостоверяет личность владельца. Идентификация обеспечивается путем применения личного ключа, известного только пользователю данной системы. Когда пользователь
16.10.3. Генерирование сертификатов
16.10.3. Генерирование сертификатов Сертификат гарантирует безопасное подключение к веб-серверам и/или удостоверяет личность владельца. Идентификация обеспечивается путем применения личного ключа, известного только пользователю данной системы. Когда пользователь
Применение классов Qt во вторичных потоках
Применение классов Qt во вторичных потоках Функция называется потокозащищенной (thread—safe), если она может спокойно вызываться одновременно из нескольких потоков. Если две такие функции вызываются из различных потоков и совместно используют одинаковые данные, результат
2.33. Генерирование последовательности строк
2.33. Генерирование последовательности строк Изредка бывает необходимо получить «следующую» строку. Так, следующей для строки "aaa" будет строка "aab" (затем "aac", "aad" и так далее). В Ruby для этой цели есть метод succ:droid = "R2D2"improved = droid.succ # "R2D3"pill = "Vitamin B"pill2 = pill.succ # "Vitamin C"He
5.28. Генерирование случайных чисел
5.28. Генерирование случайных чисел Если вас устраивают псевдослучайные числа, вам повезло. Именно они предоставляются в большинстве языков, включая и Ruby.Метод rand из модуля Kernel возвращает псевдослучайное число x с плавающей точкой, отвечающее условиям x >= 0.0 и x < 1.0.
Программное создание вторичных потоков
Программное создание вторичных потоков Чтобы программно создавать дополнительные потоки, выполняющие свои отдельные задачи, вы должны следовать вполне понятным указанным ниже рекомендациям.1. Для выбранного типа создайте метод, который будет использоваться в качестве
Генерирование динамического компоновочного блока
Генерирование динамического компоновочного блока Чтобы проиллюстрировать процесс определения компоновочного блока .NET в среде выполнения, давайте создадим одномодульный динамический компоновочный блок с именем MyAssembly.dll. В этом модуле будет содержаться класс HelloWorld.
Генерирование метода HelloWorld()
Генерирование метода HelloWorld() Наконец, рассмотрим задачу генерирования метода SayHello(). Первой задачей здесь оказывается получение типа MethodBuilder из переменной helloWorld-Class. После этого определяется указанный метод и получается ILGenerator, позволяющий добавить соответствующие
Генерирование ресурсов в Visual Studio 2005
Генерирование ресурсов в Visual Studio 2005 С файлами *.resx и *.resources можно, конечно, работать вручную в командной строке, но Visual Studio 2005 предлагает средства автоматизации создания и встраивания ресурсов в проект. Для примера создайте новое приложение Windows Forms, назвав его MyResourcesWinApp.
Генерирование HTML-содержимого
Генерирование HTML-содержимого Пожалуй, самой известной сферой применения типа HttpResponse является запись содержимого непосредственно в выходной поток HTTP. Метод HttpResponse. Write() позволяет передать HTML-дескрипторы, или вообще любые строковые литералы. Метод HttpResponse.WriteFile() расширяет
Генерирование ключа с помощью устройства
Генерирование ключа с помощью устройства В этом случае закрытый ключ не появляется в открытом виде и нет риска, что злоумышленник украдет его резервную копию. Единственный способ использования закрытого ключа – данное обладание интеллектуальным устройством. Являясь