русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Введення у виключення


Дата додавання: 2015-01-08; переглядів: 1058.


При обчисленні виразів можуть виникнути помилки, наприклад, переповнювання, зникнення порядку або ділення на нуль. У С# є механізм, який дозволяє обробляти подібні помилки і таким чином уникати аварійного завершення програми. Він так і називається: механізм обробки виняткових ситуацій (виключень).

Якщо в процесі обчислень виникла помилка, система сигналізує про це за допомогою спеціальної дії, яка називається викиданням (генеруванням) виключення. Кожному типу помилки відповідає своє виключення. Оскільки С# - мова об'єктно-орієнтована, виключення є класами, які мають загального предка - клас Exception, визначений в просторі імен System. Наприклад, при діленні на нуль буде викинуто (згенеровано) виключення з довгим, але зрозумілим ім'ям DivideByZeroException, при недоліку пам'яті - виключення OutofMemoryException, при переповнюванні - виключення OverflowException. Стандартних виключень дуже багато, проте, програміст може створювати і власні виключення на основі класу Exception.

Програміст може задати спосіб обробки виключення в спеціальному блоці кода, що починається з ключового слова catch (“перехопити”), який буде автоматично виконаний при виникненні відповідної виняткової ситуації. Усередині блоку можна, наприклад, вивести застережливе повідомлення або скорегувати значення величин і продовжити виконання програми. Якщо цей блок не заданий, система виконує дії за умовчанням, які, зазвичай, полягають у виведенні діагностичного повідомлення при нормальному завершенні програми.

Процесом викидання виключень, що виникають при переповнюванні, можна управляти. Для цього служать ключові слова checked і unchecked. Слово checked включає перевірку переповнювання, слово unchecked вимикає. При вимкненій перевірці виключення, пов'язані з переповнюванням, не генеруються, а результат операції усікається. Перевірку переповнювання можна реалізувати для окремого виразу або для цілого блоку операторів, наприклад:

а = checked (b + с); // для виразу

unchecked {а = b + c;} //для блоку операторів

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

Можна задати перевірку переповнювання у всій програмі за допомогою ключа компілятора /checked, це корисно при відладці програми. Оскільки подібна перевірка декілька уповільнює роботу, в готовій програмі цей режим зазвичай не використовується.

 

3.2.3. Основні операції С#


<== попередня лекція | наступна лекція ==>
Перетворення вбудованих арифметичних типів-значень | Інкремент і декремент


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн