Why do embedded platform developers continuosly attempt to remove usage C++ exceptions
from their SDKs
?
For example, Bada SDK
suggests the following workaround for the exception usage, which looks exceptionally ugly:
result
MyApp::InitTimer()
{
result r = E_SUCCESS;
_pTimer = new Timer;
r = _pTimer->Construct(*this);
if (IsFailed(r))
{
goto CATCH;
}
_pTimer->Start(1000);
if (IsFailed(r))
{
goto CATCH;
}
return r;
CATCH:
return r;
}
What are the reasons for this behavior?
As far as I know, ARM
compilers fully support C++ exceptions
and this couldn't actually be the matter. What else? Is the overhead of the exception usage and unwindings on ARM
platforms really that BIG to spend a lot time making such workarounds?
Maybe something else I'm not aware of?
Thank you.
I can think of a couple of possible reasons: