C# для начинающих Пахомов Б. И



Download 8,15 Mb.
Pdf ko'rish
bet127/266
Sana20.04.2022
Hajmi8,15 Mb.
#567200
1   ...   123   124   125   126   127   128   129   130   ...   266
Bog'liq
C# for beginners


Глава 9. Обработка исключительных ситуаций 
197 
Листинг 9.1 
/* Created by SharpDevelop. 
* User: user 
* Date: 06.12.2012 
* Time: 12:32 

* To change this template use Tools | Options | Coding | 
* Edit Standard Headers. */ 
using System; 
namespace app34_exeption 

class Program 

static void Main() 
{ Console.WriteLine("Ввод строк длиной " + 
"не более 5 символов"); 
int i = (Console.ReadLine().Length); 
try 

if (i > 5) 
// Генерируем исключение 
throw new Exception(); // OverflowException(); 

catch (Exception ex) // OverflowException 

Console.WriteLine("Длина строки более 5 " + 
"символов"); 

Console.ReadLine(); 



Рис. 9.1. 
Демонстрация обработки исключения, когда введено более 5 символов 


198 
Часть II. Объектно-ориентированное программирование 
В программе видим два блока обработки исключения, озаглавленных 
ключевыми словами 
try
и 
catch
. Каждый блок — это множество опера-
торов, заключенных в фигурные скобки. Блоки строятся следующим 
образом: участок программы, который может стать проблемным, за-
ключается в блок 
try
. В нашем случае могут возникнуть проблемы при 
вводе строки. Мы хотим ограничить ее длину пятью символами. Заклю-
чаем в блок 
try
участок проверки длины введенной строки и не ждем от 
исполняющей среды никаких действий по генерации исключения (да 
она тут его и не сгенерирует), а сами вставляем в блок 
try
оператор 
trow
. Синтаксическая конструкция его видна в тексте программы. 
Exception()
— это конструктор базового класса по обработке исключе-
ний, который создает из класса объект, элементами которого мы можем 
пользоваться (пока что мы не воспользовались ни одним). Ранее отме-
чалось, что для различных конкретных групп ситуаций существуют 
свои классы-исключения. В данной ситуации можно было бы восполь-
зоваться классом 
OverflowException
, который закомментирован в стро-
ке с оператором 
throw
. Этот класс как раз и является разновидностью 
классов-исключений, который дает возможность обрабатывать пере-
полнения (в частности, переполнения строк по длине, чем можно было 
бы воспользоваться). Но часто достаточно пользоваться самым общим 
классом — 
Exception
, название которого легко запомнить и который 
тоже дает возможность обработки исключений. 
У каждого 
try
есть пара — 
catch
. Тоже блок операторов. В этом блоке 
идет собственно обработка ситуации. Если в блоке 
try
исключение не 
возникло, блок 
catch
пропускается (это, как пара 
if...else
). Таких пар 
может быть сколько угодно: каждый подозрительный участок вы може-
те охватить этой парой. Заголовок блока 
catch
— это фактически метод 
с одним параметром типа одного из классов-исключений. В данном 
случае этот класс тот, который и выдал исключение в операторе 
throw

Поэтому внутри тела 
catch
мы можем пользоваться членами класса 
Exception
. Следующая программа, текст которой приведен в листин-
ге 9.2, и демонстрирует этот факт. Результат ее работы представлен на 
рис. 9.2. 
Листинг 9.2 
/* Created by SharpDevelop. 
* User: user 
* Date: 06.12.2012 
* Time: 12:32 



Download 8,15 Mb.

Do'stlaringiz bilan baham:
1   ...   123   124   125   126   127   128   129   130   ...   266




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish