Do crashu aplikacji dochodzi przeważnie w momencie, gdy wykonuje ona operację niedozwoloną w danym systemie operacyjnym. Wówczas system wywołuje wyjątek w tej aplikacji. Unixowe aplikacje zazwyczaj odpowiadają poprzez wykonywanie zrzutu rdzenia. Większość aplikacji posiadających graficzny interfejs w systemach Windows oraz Unix odpowiada poprzez wyświetlanie okna dialogowego (zob. grafika po prawej) z możliwością dołączenia debuggera jeżeli jest zainstalowany. Takie zachowanie programu określa się mianem „crashowania”. Niektóre programy próbują powrócić do pracy po wystąpieniu błędu, zamiast robić crash.
Typowe błędy, w wyniku których dochodzi do crashu programów, to próby: odczytu/zapisu pamięci, która nie jest przydzielona w tym celu przez aplikację (naruszenie ochrony pamięci) lub przez specyfikację architektury x86 (ogólny błąd ochrony) wykonania nieprawidłowych lub uprzywilejowanych instrukcji wykonania operacji wejścia/wyjścia na urządzeniach sprzętu do których użytkownik nie ma dostępu przesyłania nieprawidłowych argumentów do wywołań systemowych uzyskania dostępu do innych zasobów