Всем привет!
У меня тут в последнее время появилось устойчивое желание использовать сабжевую конструкцию там где надо и не надо. Во всём нужно соблюдать золотую середину... Я её видать потерял чувство равновесия:( Просьба востановить! Хотя может быть я прав:)
И так. Например изначально каждую функцию я хочу оформлять вот так:
bool func()
{
res = false;
try
{
......
res = true;
}
catch (...)
{
res = false;
}
return res;
}
далее из-за боязни всего что движеться и не движеться там где я выделяю память я хочу делать вот так
bool func()
{
res = false;
try
{
void* pTmp = malloc(size);
if (pTmp != NULL)
{
try
{
...........
res = true;
}
catch (...)
{
res = false;
}
free(pTmp);
}
}
catch (...)
{
res = false;
}
return res;
}
соотвественно если мне нужно пару раз выделить память. я и там прикручу сабж
bool func()
{
res = false;
try
{
void* pTmp1 = malloc(size);
if (pTmp1 != NULL)
{
try
{
void* pTmp2 = malloc(size);
if (pTmp2 != NULL)
{
try
{
...........
res = true;
}
catch (...)
{
res = false;
}
free(pTmp2);
}
res = true;
}
catch (...)
{
res = false;
}
free(pTmp1);
}
}
catch (...)
{
res = false;
}
return res;
}
а ещё понравилось делать вот так
bool func()
{
res = false;
try
{
тут что-то делается. потом проверяется условие если фолс то делаем throw
if (condition == false)
{
throw -1;
}
иначе продолжаем работу....
потом ситуация может повториться
if (condition == false)
{
throw -1;
}
}
catch (...)
{
res = false;
}
return res;
}
Что скажите? Говорить о том что например тот же malloc или любая функция которуюя хочу дёрнуть не кидает експешин меня никоим образом не успокаивает. Я из-за недоверия ей всё равно хочу взять её в try, не смотря ни на что, даже ни смотря на более медленную работу. Вот такие пироги.
PS наверное хотелось бы для начала поговорить о С++, поэтому SEH с её __finally не стоит рассматривать.