Trap vs Interrupt
A trap occurs when an exception occurs in a user process. It can also be used to invoke a kernel routine (User Program → Kernel), and is generally handled synchronously. Traps also increment the instruction pointer.
An interrupt is generated by the hardware asynchronously. Software can use the int3 instruction to generate an interrupt, but it is generally (Hardware → Program).
Faults are exceptions that can be corrected (like page faults).
Aborts are exceptions for severe errors, which does not allow restarting the program or task.