Error handling is an important part of any large system and developing a coherent approach can be difficult.

First, there are some questions to ask yourself: