If the toolchain in use (or projected use) has an inefficient implementation of exceptions, it might be wise to avoid their use. I've worked under such conditions.
Update: here is someone else's rationale for "Embedded C++", which seems to exclude exceptions. It makes the following points:
- It is difficult to estimate the time between when an exception has occurred and control has passed to a corresponding exception handler.
- It is difficult to estimate memory consumption for exception handling.
There is more elaborate text on that page, I didn't want to copy it all. Plus, it's 10 years old so it might be of no use any longer, which is why I included the part about the toolchain. Perhaps that should also read "if memory is not considered a major problem", and/or "if predictable real-time response is not required", and so on.