I had a phone interview for a programming position at a prominent NYC financial data services and media company recently and the gentleman who interviewed me insisted that it was never a good idea to throw an exception from a constructor and this was a policy at the company.
Not sure I'd want to work at a place with such unfortunate restrictions but the experience got me thinking. I can think of at least one situation when I wouldn't use exceptions (in general), and that is when the code can be called by legacy code that doesn't handle exceptions.
Are there other situations, perhaps particularly from constructors?