Altough the kernel and device drivers of an OS need to handle various types of hardware generated interrupts, applications do not. In fact, it is important that appliation programs be insulated from hardware specific resources and mechanism for reliability and security purposes.
This does not mean that application programs do not need to worry about handling interrupts. An application still needs to be notified of certain system events. These system events occur asynchronously with respect to the execution of an application program. In other words, an application program cannot anticipate when these events may happen.
As a result, these system events are treated exactly like interrupts. When an event occurs, an application program may specify a signal handler (which is similar to an ISR) to handle it. One can say that a system event “interrupts” the execution of a normal application program.