Use exception for exceptional cases, and handle them properly in application