У сучасних мовах програмування події та обробники подій є центральною ланкою реалізації графічного інтерфейсу користувача. Розглянемо, наприклад, взаємодію програми з подіями від миші. Натискання правої клавіші миші викликає системне переривання, що запускає певну процедуру всередині операційної системи. У цій процедурі відбувається пошук вікна, що знаходиться під курсором миші. Якщо вікно знайдено, то дана подія надсилається в чергу обробки повідомлень цього вікна. Далі, у залежності від типу вікна, можуть генеруватися додаткові події. Наприклад, якщо вікно є кнопкою, то додатково генерується подія натискання на кнопку. Відмінність останньої події в тому, що вона більш абстрактна, а саме, не містить координат курсору, іговорить просто про те, що було вироблено натискання на цю кнопку.
Обробник події може виглядати наступним чином:
private void button1_Click (object sender, EventArgs e)
{
MessageBox.Show ("Була натиснута кнопка");
}
Тут обробник події являє собою процедуру, в яку передається параметр sender, який, як правило, містить покажчик на джерело події. Це дозволяє використовувати одну й ту ж процедуру для обробки подій від декількох кнопок, розрізняючи їх за цим параметром.
Різні мови програмування підтримують СОП у різному ступені. Найбільш повну підтримку подій представляють такі з них (неповний список):
- Perl;
- Java;
- C#.
Інші мови, у більшості з них, підтримують події як обробку виключних ситуацій.