Вы находитесь на странице: 1из 2

C# и .

Net Framework – Часть 1 – Основы программирования и проектирования

Урок 9. Исключения
О чем урок
В уроке рассмотрен вопрос обработки ошибок в программах. Нештатная ситуация, такая как
отсутствие сетевого подключения, блокировка файла, ошибка в формате данных, может
возникнуть в любой момент.

Технике обработки таких ситуаций и посвящен данный урок. Вы научитесь ловить и выбрасывать
исключения. Вы узнаете, как собирать исключения в цепочку, как совершить повторный выброс,
как получить доступ к трассировочному стеку.

Вы познакомитесь с иерархией и перечнем стандартных классов исключений, а также научитесь


создавать свои собственные.

Наконец будет рассмотрена конструкция using, которая может упростить жизнь программисту, и
тесно связана с исключительными ситуациями.

Самоконтроль
 проблема обработки ошибок
 старая техника обработки ошибок
 необходимость исключений
 исключения
 исключения как часть интерфейса метода
 базовый класс исключения
 стандартные исключения
 исключения обращения по несуществующему индексу
 исключение обращения к ссылке равной null
 исключение неверного параметра
 выброс исключений
 обработка исключений
 оператор контроля арифметического переполнения
 исключение деления на ноль
 исключение арифметического переполнения
 трассировочный стек исключения
 разделение исключений при обработке
 сокращенный синтаксис разделения исключений
 необработанные исключения
 блок finally
 return и блок finally
 способы обхода блока finally
 собственный класс исключения
 конструкторы для класса исключения

Школа Программирования, Ляпин Дмитрий, 2011 г. Страница 1


C# и .Net Framework – Часть 1 – Основы программирования и проектирования

 вложенные исключения
 техника обработки и генерации исключений в собственных классах
 повторный выброс исключений
 сокращенный синтаксис повторного выброса исключений
 конструкция using
 выход из блока using по return
 исключения внутри блока using

Домашнее задание
Продолжаем работу с собственными коллекциями.

1. Добавьте в классы вектора и связного списка генерацию исключений в случае обращения


по несуществующему индексу.

2. Добавьте исключение при попытке сортировки списка, элементы которого не реализуют


интерфейс IComparable.

3. Если при обходе списка циклом foreach происходит модификация (добавление, вставка
или удаление элемента), должно быть выброшено исключение.

Изучите в отладчике, как это происходит у стандартного класса списка, и сделайте


подобным образом:

using System;
using System.Collections.Generic;

class Program
{
static void Main()
{
List<int> list = new List<int>();

for(int i = 0; i < 10; i++)


list.Add(i);

foreach (int item in list)


list.Add(item);
}
}

Школа Программирования, Ляпин Дмитрий, 2011 г. Страница 2