В работе с исключениями существует большая относительность.. Помимо API низкого уровня, где исключения охватывают ошибки, возникающие из-за аппаратного обеспечения и ОС, есть теневая область, где программист решает, что представляет собой исключение и что является нормальным условием.
Как вы решаете, когда использовать исключения? Есть ли у вас согласованная политика в отношении исключений?