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?
The pythonic thing to do is to raise and handle exceptions. The excellent book “Python in a nutshell” discusses this in ‘Error-Checking Strategies’ in Chapter 6.
The book discusses EAFP (“it’s easier to ask forgiveness than permission”) vs. LBYL (“look before you leap”).
So to answer your question:
No, I would not recommend the same for python code. I suggest you read chapter 6 of Python in a nutshell.