You may know this recommendation from Microsoft about the use of exceptions in .NET:

> 
> Performance Considerations
> 
> 
> ... 
> 
> 
> Throw exceptions only for
>  extraordinary conditions, ...
> 
> 
> In addition, do not throw an exception
>  when a return code is sufficient...
> 
> 
> 

(See the whole text at <http://msdn.microsoft.com/en-us/library/system.exception.aspx>.)

As a point of comparison, would you recommend the same for Python code?