Вы можете знать эту рекомендацию от Microsoft об использовании исключений в .NET:
Оценка производительности
...
Выбросить исключения только для чрезвычайные условия,...
Кроме того, не бросайте исключение когда код возврата достаточен...
(см. весь текст http://msdn.microsoft.com/en-us/library/system.exception.aspx.)
Как точка сравнения, вы бы порекомендовали то же самое для кода Python?