Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Використання try, catch

Читайте также:
  1. Аналіз ефективності використання короткострокових кредитів
  2. В загальному вигляді міжнародний рух капіталу означає переміщення капіталу між суб’єктами міжнародної економіки з метою його оптимального використання.
  3. В.О.Кравець, Ю.М.Колибін. Проектування та використання програм діагностики мереж.-Навч.пос. /Харків, НТУ “ХПІ”, 2004, -388с.
  4. Видатки державного бюджету як форма використання бюджетних ресурсів.
  5. види та використання
  6. Види транспорту та їх використання у практиці міжнародних перевезень.
  7. Визначення моментів інерції з використанням маятника максвелла
  8. Використання банківської гарантії
  9. Використання засобів індивідуального та колективного захисту персоналу

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

Электробензонасос не разбирается и ремонту не подлежит. В случае неисправности заменить его новым.

 

Студентка групи ЕК-33

Цирельнікова Олена

Острог, 2012

План

1. Помилка, класифікація помилок

2. Основи обробки виняткових ситуацій

Використання try, catch

Перехоплення виключень. Обробка деяких виключень

5. Наслідки не перехоплення виключень

Захисний код

Блок finally

Приклади розв’язання задач

Висновки

Список використаних джерел


Вступ

Програмісти дуже часто пишуть код, вважаючи, що програма буде працювати коректно і все інше буде працювати стабільно. Але, нажаль, це далеко не так.

До прикладу, можлива така ситуація, коли програмі потрібно відкрити файл, записати в нього інформацію і закрити. Але при цьому може виникнути складність, коли оточення виявляється нестабільним. Наприклад, користувач задав неіснуючий шлях для файла або вказав недопустимі символи. В такому випадку виклик команди створення \ відкриття файлу завершиться невдачею, і якщо ту невдачу пропустити скрізь пальці, то програма може рухнути.

Всі люди сьогодні робити помилки, тому до проблем роботи програми може призвести і недосконалість програмного коду або логіка виконання. В всіх цих випадках може допомогти механізм обробки виключних ситуацій. [1 с.261 ]

Виняткова ситуація, або просто виняток, відбувається під час виконання. Використовуючи підсистему обробки виняткових ситуацій в С #, можна обробляти структурованим і контрольованим чином помилки, що виникають при виконанні програми. Головна перевага обробки виняткових ситуацій полягає в тому, що вона дозволяє автоматизувати отримання більшої частини коду, який раніше доводилося вводити в будь-яку велику програму вручну для обробки помилок. Так, якщо програма написана на мові програмування без обробки виняткових ситуацій, то при невдалому виконанні методів доводиться повертати коди помилок, які необхідно перевіряти вручну при кожному виклику методу. Це не тільки трудомісткий, але й загрожує помилками процес. Обробка виняткових ситуацій раціоналізує весь процес обробки помилок, дозволяючи визначити в програмі блок коду, званий обробником винятків і виконується автоматично, коли виникає помилка. Це позбавляє від необхідності перевіряти вручну, наскільки вдало або невдало завершилася конкретна операція або виклик методу. Якщо виникне помилка, вона буде оброблена відповідним чином обробником помилок [2с.403]

Обробка виняткових ситуацій важлива ще й тому, що в С # визначені стандартні винятки для типових програмних помилок, наприклад розподіл на нуль або вихід індексу за межі масиву. Для реагування на подібні помилки в програмі має бути організовано відстеження та обробка відповідних виняткових ситуацій. Адже в кінцевому рахунку для успішного програмування на С # необхідно навчитися вміло користуватися підсистемою обробки виняткових ситуацій. [2 с.403-404]

Винятки - основний механізм, прийнятий в. NET для обробки помилок. Це дуже потужний інструмент, що накладає на програміста певну відповідальність. Як і іншими функціональними можливостями, винятками можна зловжити, проте це не є вибаченням для тих, хто використовує їх в недостатній мірі. У порівнянні з поверненням кодів помилок винятку володіють рядом переваг. Зокрема, вони дозволяють "перестрибнути" через кілька фреймів в стеку викликів і дають вам можливість передати великий об'єм інформації. [3. с.71]

 

 

1. Помилка, класифікація помилок

Помилка виникає, коли програма з якихось причин, наприклад в результаті введення неправильних даних або неправильно зазначених обчислень, не виконується належним чином. Але Середа CLR. NET не розуміє помилок, а тільки виключення. Наприклад, якщо помилка викликана множенням двох чисел замість їх додавання, то програма буде продовжувати працювати, але видасть неправильні результати.

Подібна помилка відбувається при введенні користувачем невірних даних-результат буде неправильним, але програма буде продовжувати працювати.[4 с.138]

Класифікація помилок є наступною:

1) Помилки при роботі з ресурсами комп’ютера, є необхідними програмі. Помилки ресурсів необхідно відловлювати виключними ситуаціями, і це дуже зручно. Це тому, що не потрібно постійно виділяти пам’ять, а вона виділяється автоматично.

2) Помилки логіки. Бувають випадки, коли програміст неправильно прорахував всі варіанти виповнення програми, і якийсь з варіантів привів до того, що програма виповнила недопустиму операцію, наприклад ділення на 0, вихід за межі масива і т.п. Такі помилки достатньо шкідливі, але просто глушити їх за допомогою механізму обробки виключення не правильно. Логічні помилки програми повинні виправлятися. Виключні ситуації можуть тільки бути хорошим помічником для виявлення проблеми з логікою.

3) Користувальницькі помилки. Вони можуть бути результатом неправильних дій користувача або некоректного вводу даних. Перший варіант ближче до логічних помилок. Якщо користувач зміг виконати некоректну послідовність дій, то винна логіка програми, яка допускала цю послідовність. Ці помилки потрібно відловлювати і виправляти. А ось захист від некоректного вводу даних двома способами одночасно-перевірка ввідних даних допустити і обробити виключні ситуації. [1. с.264]

 

2. Основи обробки виняткових ситуацій

У разі серйозної проблеми, яка не може бути дозволена користувачем або може викликати збій програми, до обробки цієї помилки підключається середу CLR. Такі помилки називаються винятками. Замість того щоб дозволити відбутися програмному збою, середа CLR зупиняє штатний виконання програми та надає можливість обробити виключення самою програмою. Це називається обробкою виключень. Щоб отримати уявлення про те, яким чином організація коду впливає на обробку виключень, можна уявити собі програму, як велику корпорацію.

Корпорація має генерального директора, менеджерів першого рівня, менеджерів середнього рівня і т. д. до простих працівників. Керівництво корпорації розуміє, що для того щоб здійснити поставлені перед корпорацією завдання, потрібно розробити план дій і слідувати цьому плану. Генеральний директор та керівники вищого рівня будуть знати весь план дій. А виконання окремих пунктів плану покладається на керівників нижчого рівня та підпорядкованих їм робітників. Результатом виконання всіх окремих положень плану цими організаційними одиницями буде реалізація всього плану. Застосувавши цю концепцію до області розробки програмного забезпечення, можна виділити два типи методів: методи для організації функціональності і методи для реалізації цієї функціональності. Організаційний код створюється для того, щоб можна було розбити всю задачу на окремі індивідуальні робочі одиниці. Виконання однієї такої робочої одиниці коду не впливає на виконання інший, і таким чином ми отримуємо модульну програму. [4 с.138-139]

 

Обробка виняткових ситуацій в С # організовується за допомогою чотирьох ключових слів: try, catch, throw і finally. Вони утворюють взаємозалежну підсистему, в якій застосування одного з ключових слів увазі застосування іншого. Оператори програми, які потрібно контролювати на появу винятків, полягають в блок try. Якщо всередині блоку try виникає виняткова ситуація, генерується виключення. Це виключення може бути перехоплено і оброблено яким-небудь раціональним способом в коді програми за допомогою оператора, позначуваного ключовим словом catch. Винятки, що виникають на рівні системи, генеруються виконуючою системою автоматично. А для генерування винятків вручну служить ключове слово throw. Будь код, який повинен бути неодмінно виконаний після виходу з блоку try, поміщається в блок finally.[2 с.404]

Крім цих чотирьох ключових слів також виключення будуються на виключних ситуаціях. Всі виключення в .NET так чи інакше відбуваються від класу Exception, який є частиною простору імен System. Цей клас є базовим, а тому властивості і методи унаслідуються ними.

Отже, у складі Exception найцікавіше:

· Data-колекція у вигляді інтерфейсу iDictionary, в якій у вигляді списку ключ / значення користувачеві дається докладна інформація про виключення;

· HelpLink - може повертати URL файлу довідки з додатковою інформацією поданою класу винятків;

· InnerException-інформація про внутрішні винятки, які стали причиною даної виняткової ситуації;

· Message - короткий текстовий опис помилки, але в більшості випадків зрозуміле;

· Source - ім'я збірки, згенерувати виключення;

· StackTrace-рядок, що містить послідовність викликів, які призвели до помилки. Ця властивість може бути корисно з точки зору налагодження коду та виниклої проблеми.[1ст.264]

 

Використання try, catch

try
{
/ / Тут міститься код, який може викликати помилку (а може і не викликати)
}
catch ()
{
/ / Тут міститься код, який буде обробляти помилку
} [1]

 

Основу обробки виняткових ситуацій в С # складає пара ключових слів try і catch. Ці ключові слова діють спільно і не можуть бути використані порізно. Нижче наведена загальна форма визначення блоків try / catch для обробки виняткових ситуацій:
try

{
/ / Блок коду, що перевіряється на наявність помилок.
}

catch {ExcepTypel exOb)

{
/ / Оброблювач виключення типу ExcepTypel.
}

catch {ExcepType2 exOb)

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

де ЕхсерТуре - це тип виникаючої виняткової ситуації. Коли виняток генерується оператором try, воно перехоплюється складовим йому пару оператором catch, який потім обробляє це виняток. В залежності від типу виключення виконується і відповідний оператор catch.
Слід, однак, мати на увазі, що якщо виключення не генерується, то блок оператора try завершується як звичайно, і всі його оператори catch пропускаються. Виконання програми поновлюється з першого оператора, наступного після завершального оператора catch. Таким чином, оператор catch виконується лише в тому випадку, якщо генерується виключення. [2 c. 404-405]

Намагайтеся включати в блок try тільки дійсно необхідний код. Наприклад, наступний код буде не дуже хорошим:

while (true)

{

try

{

Console.WriteLine("Введіть число");

 

string inLine = Console.ReadLine();

if (inLine == "q")

break;

 

int i = Convert.ToInt32(inLine);

Console.WriteLine("Ви ввели {0}", i);

}

catch (Exception e)

{

}

}


Код в цьому прикладі поганий, тому що тут в блок try укладено весь вміст циклу, то в блоці catch ловляться всі події завдяки використанню класу Exception, і нічого не написано, немає ніякої реакції на виняткову ситуацію. [1 ст. 270]

По суті, блок try - це відрізок коду, під час виконання якого відбувається відстеження виникаючих винятків. При виникненні виключення виконання коду, визначеного в блоці try, переривається, і починає виконуватися код, визначений в найближчому наступному блоці catch. Якщо ж у процесі виконання коду в блоці try винятків так і не виникло, блок catch повністю
пропускається і виконання програми йде далі згідно її внутрішньої логіки. [5 С. 180]

Час від часу виникає потреба в перехопленні всіх винятків незалежно від їх типу. Для цієї мети служить оператор catch, в якому тип і змінна
виключення не вказуються. Нижче наведена загальна форма такого оператора.
catch {
/ / Обробка виключень
}

[2 ст. 412]


Дата добавления: 2014-12-19; просмотров: 52 | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2021 год. (0.013 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав