Software generally have means to detect errors, like catching exceptions, and these can be categorized :
- App cannot run, some prerequisite not met.
- App failed to start.
- App started but some parts aren't functional.
- Instant: User clicks something (expected for something to happen), but it didn't.
- Time consuming: User starts a task, but it fails in between.
- Everything works, but with some warnings.
- Something critical went wrong, app will crash.
Now, how shall one decide which error are to be notified, and which ones logged silently ?