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