Під час роботи програми можуть виникати помилки, які називаються помилками часу виконання (run-time errors) або винятками (exceptions). У більшості випадків причинами винятків є невірні вихідні дані. Наприклад, якщо під час роботи програми обчислення швидкості бігу в поле Час ввести 3.20, тобто для відділення дробової частини числа від цілої використовувати точку, то в результаті натискання кнопки Обчислити на екрані з’явиться вікно з повідомленням про помилку (рис. В42).
Рис. В42. Приклад помилки часу виконання (програма запущена з Windows)
Причина виникнення помилки полягає в наступному. У тексті програми дробова частина числа від цілої відокремлюється крапкою. При введенні вихідних даних в поле редагування користувач може (якщо не вжити жодних додаткових зусиль) відокремити дробову частину числа від цілої точкою або коми. Який з цих двох символів є допустимим, залежить від настройки Windows.
Якщо в налаштуванні Windows зазначено, що роздільник цілої і дробової частин числа – кома (для Росії це стандартна установка), а користувач під час роботи програми введе в поле редагування, наприклад, рядок 3.20, то при виконанні інструкції
t = StrToFloat (Edit2.Text)
виникне виключення, т. к. При стандартної , для Росії налаштування Windows вміст поля Edit2 і, отже, аргумент функції strToFloat не є зображенням дробового числа.
Якщо програма запущена з середовища розробки, то при виникненні виключення виконання програми призупиняється, і на екрані з’являється вікно з повідомленням про помилку і її тип. В якості прикладу на рис. В43 приведено вікно з повідомленням про те, що введена користувачем рядок не є дробовим числом.
Рис. В43. Приклад повідомлення про виникнення виключення (програма запущена з Delphi)
Після натискання кнопки ОК програміст може продовжити виконання програми (для цього треба з меню Run вибрати команду Step Over) або перервати виконання програми. В останньому випадку потрібно з меню Run вибрати команду Program Reset.
При розробці програми програміст повинен постаратися передбачити всі можливі варіанти некоректних дій користувача, які можуть привести до виникнення помилок часу виконання (Виключення), і забезпечити способи захисту від них.
У лістингу В5 приведена версія програми Швидкість бігу, в якій реалізований захист від деяких некоректних дій користувача, зокрема, программа.позволяет вводити в поле Дистанція (Editl) тільки цифри.