Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Исключения имеют следующие свойства· Исключения имеют типы, в конечном счете являющиеся производными от System.Exception. · Следует использовать блок try для заключения в него инструкций, которые могут выдать исключения. · При возникновении исключения в блоке try поток управления немедленно переходит к первому соответствующему обработчику исключений, присутствующему в стеке вызовов. В языке C# ключевое слово catch используется для определения обработчика исключений. · Если обработчик для определенного исключения не существует, выполнение программы завершается с сообщением об ошибке. · Не перехватывайте исключение, если его нельзя обработать, и оставьте приложение в известном состоянии. При перехвате System.Exception вновь инициируйте это исключение с использованием ключевого слова throw в конце блока catch. · Если в блоке catch определяется переменная исключения, ее можно использовать для получения дополнительной информации о типе произошедшего исключения. · Исключения могут явно генерироваться программной с помощью ключевого слова throw. · Объекты исключения содержат подробные сведения об ошибке, такие как состояние стека вызовов и текстовое описание ошибки. · Код в блоке finally выполняется, даже при возникновении исключения. Блок finally используется для освобождения ресурсов, например для закрытия потоков или файлов, открытых в блоке try.
Примеры: try
try
try
(https://msdn.microsoft.com/ru-ru/library/ms173160.aspx, https://msdn.microsoft.com/ru-ru/library/ms173162.aspx) 10. Понятие шаблонов, и работа с шаблонами на примере С++. (Туривный С.)
Шабло́ны (англ. template) — средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например, типам данных, размерам буферов, значениям по умолчанию). В C++ возможно создание шаблонов функций и классов. Шаблоны позволяют создавать параметризованные классы и функции. Параметром может быть любой тип или значение одного из допустимых типов (целое число, enum, указатель на любой объект с глобально доступным именем, ссылка). Например, нам нужен какой-то класс: class SomeClass{ Для одной конкретной цели мы можем использовать этот класс. Но, вдруг, цель немного изменилась, и нужен еще один класс. Теперь нужно 30 элементов массива SomeArray и вещественный тип SomeValue элементов SomeArray. Тогда мы можем абстрагироваться от конкретных типов и использовать шаблоны с параметрами. Синтаксис: в начале перед объявлением класса напишем слово template и укажем параметры в угловых скобках. Внашемпримере: template<int ArrayLength, typename SomeValueType >class SomeClass{ Тогда для первой модели пишем: SomeClass <20, int> SomeVariable; длявторой: SomeClass <30, double> SomeVariable2; Хотя шаблоны предоставляют краткую форму записи участка кода, на самом деле их использование не сокращает исполняемый код, так как для каждого набора параметров компилятор создаёт отдельный экземпляр функции или класса. Как следствие, исчезает возможность совместного использования скомпилированного кода в рамках разделяемых библиотек.
Шаблон функции начинается с ключевого слова template, за которым в угловых скобках следует список параметров. Затем следует объявление функции: template<typename T > template<typename T > template<int BufferSize > // целочисленный параметр Ключевое слово typename появилось сравнительно недавно, поэтому стандарт[1] допускает использование class вместо typename: template<class T > Вместо T допустим любой другой идентификатор.
В классе, реализующем связный список целых чисел, алгоритмы добавления нового элемента списка, поиска нужного элемента не зависят от того, что элементы списка — целые числа. Те же алгоритмы применялись бы и для списка символов, строк, дат, классов игроков, и так далее. template<class T >
Параметрами шаблонов могут быть: параметры-типы, параметры обычных типов, параметры-шаблоны. Для параметров любого типа можно указывать значения по умолчанию. template<class T1, // параметр-тип (https://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B_C%2B%2B)
|