Герберт Шилдт - C# 4.0: полное руководство

Тут можно читать онлайн Герберт Шилдт - C# 4.0: полное руководство - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство ООО И.Д. Вильямс, год 2011. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    C# 4.0: полное руководство
  • Автор:
  • Жанр:
  • Издательство:
    ООО И.Д. Вильямс
  • Год:
    2011
  • Город:
    Москва -- Киев
  • ISBN:
    978-5-8459-1684-6
  • Рейтинг:
    3.93/5. Голосов: 141
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Герберт Шилдт - C# 4.0: полное руководство краткое содержание

C# 4.0: полное руководство - описание и краткое содержание, автор Герберт Шилдт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.


Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок

C# 4.0: полное руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Для того чтобы указать кодовый блок, который должен выполняться после блока try/catch, достаточно вставить блок finallyв конце последовательности операторов try/catch. Ниже приведена общая форма совместного использования блоков try/catchи finally.

try {

// Блок кода, предназначенный для обработки ошибок.

}

catch (ExcepTypel exOb) {

// Обработчик исключения типа ExcepTypel.

}

.

.

.

catch ( ЕхсерТуре2 ехОb) {

// Обработчик исключения типа ЕхсерТуре2. }

finally {

// Код завершения обработки исключений.

}

Блок finallyбудет выполняться всякий раз, когда происходит выход из блока try/catch, независимо от причин, которые к этому привели. Это означает, что если блок tryзавершается нормально или по причине исключения, то последним выполняется код, определяемый в блоке finally. Блок finallyвыполняется и в том случае, если любой код в блоке tryили в связанных с ним блоках catchприводит к возврату из метода.

Ниже приведен пример применения блока finally.

// Использовать блок finally.

using System;

class UseFinally {

public static void GenException(int what) {

int t;

int[] nums = new int [2];

Console.WriteLine("Получить " + what);

try {

switch(what) {

case 0:

t = 10 / what; // сгенерировать ошибку из-за деления на нуль

break;

case 1:

nums[4] =4; // сгенерировать ошибку индексирования массива

break;

case 2:

return; // возврат из блока try

}

}

catch (DivideByZeroException) {

Console.WriteLine("Делить на нуль нельзя!");

return; // возврат из блока catch

}

catch (IndexOutOfRangeException) {

Console.WriteLine("Совпадающий элемент не найден.");

}

finally {

Console.WriteLine("После выхода из блока try.");

}

}

}

class FinallyDemo {

static void Main() {

for(int i=0; i < 3; i++) {

UseFinally.GenException(i);

Console.WriteLine() ;

}

}

}

Вот к какому результату приводит выполнение этой программы.

Получить 0

Делить на нуль нельзя

После выхода из блока try.

Получить 1

Совпадающий элемент не найден.

После выхода из блока try.

Получить 2

После выхода из блока try.

Как следует из приведенного выше результата, блок finallyвыполняется независимо от причины выхода из блока try.

И еще одно замечание: с точки зрения синтаксиса блок finallyследует после блока try, и формально блоки catchдля этого не требуются. Следовательно, блок finallyможно ввести непосредственно после блока try, опустив блоки catch. В этом случае блок finallyначнет выполняться сразу же после выхода из блока try, но исключения обрабатываться не будут.

Подробное рассмотрение класса Exception

В приведенных выше примерах исключения только перехватывались, но никакой существенной обработке они не подвергались. Как пояснялось выше, в операторе catchдопускается указывать тип и переменную исключения. Переменная получает ссылку на объект исключения. Во всех исключениях поддерживаются члены, определенные в классе Exception, поскольку все исключения являются производными от этого класса. В этом разделе будет рассмотрен ряд наиболее полезных членов и конструкторов класса Exceptionи приведены конкретные примеры использования переменной исключения.

В классе Exceptionопределяется ряд свойств. К числу самых интересных относятся три свойства: Message, StackTraceи Targetsite. Все эти свойства доступны только для чтения. Свойство Messageсодержит символьную строку, описывающую характер ошибки; свойство StackTrace— строку с вызовами стека, приведшими к исключительной ситуации, а свойство ТагgetSiteполучает объект, обозначающий метод, сгенерировавший исключение.

Кроме того, в классе Exceptionопределяется ряд методов. Чаще всего приходится пользоваться методом ToString(), возвращающим символьную строку с описанием исключения. Этот метод автоматически вызывается, например, при отображении исключения с помощью метода WriteLine().

Применение всех трех упомянутых выше свойств и метода из класса Exceptionдемонстрируется в приведенном ниже примере программы.

// Использовать члены класса Exception.

using System;

class ExcTest {

public static void GenException() {

int[] nums = new int [4];

Console.WriteLine("До генерирования исключения.");

// Сгенерировать исключение в связи

//с выходом за границы массива,

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

nums[i] = i;

Console.WriteLine("nums[{0}]: {1}", i, nums[i]);

}

Console.WriteLine("He подлежит выводу");

}

}

class UseExcept {

static void Main() {

try {

ExcTest.GenException();

}

catch (IndexOutOfRangeException exc) {

Console.WriteLine("Стандартное сообщение таково: ");

Console.WriteLine(exc); // вызвать метод ToString()

Console.WriteLine("Свойство StackTrace: " + exc.StackTrace);

Console.WriteLine("Свойство Message: " + exc.Message);

Console.WriteLine("Свойство TargetSite: " + exc.TargetSite);

}

Console.WriteLine("После блока перехвата исключения.");

}

}

При выполнении этой программы получается следующий результат.

До генерирования исключения.

nums[0]: 0

nums[1]: 1

nums[2]: 2

nums[3]: 3

Стандартное сообщение таково: System.IndexOutOfRangeException: Индекс находился

вне границ массива.

в ExcTest.genException() в <���имя_файла >:строка 15

в UseExcept.Main()в <���имя_файла >:строка 29

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Герберт Шилдт читать все книги автора по порядку

Герберт Шилдт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# 4.0: полное руководство отзывы


Отзывы читателей о книге C# 4.0: полное руководство, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x