In my experience as programmer the main three sources of software crashes are:

- Forgot a null check on code that can return a null.
- Function has poorly defined flow and recursed until the stack crashed
- Didn't check for exceptions from code that throws exceptions, which is a crime in itself

Comments