Перейти к содержанию
    

Ошибки функций... и последствия

Видимо, ссыль из моего пред. поста Вас не зацепил. Зря, чесслово! На машине Даффа строится отличная альтернатива исключениям, мсм.

честно говоря, не вкурил. Сейчас ищу другие статьи, кроме вики, чтобы осознать это дело :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

return crash_handler(чего-нибудь);

ИМХО симпатичнее, чем в конце функции писать, да и религиозная ненависть к goto удовлетворена :)

Это если не нужно освобождать ресурсы или выполнять какие-нибудь еще действия при ошибке.

В противном случае лучше задавить в себе религиозную ненависть - goto в таких ситуациях хороший и нужный оператор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это если не нужно освобождать ресурсы или выполнять какие-нибудь еще действия при ошибке.

Ну во встроенных приложениях выделение-освобождение ресурсов лучше сводить к минимуму, ИМХО.

Если же без ресурсов "никак", это можно сделать на уровне конструктор-деструктор - объект создается на стеке (ресурс выделяется в конструкторе), разрушается при выходе из области видимости (ресурс освобождается). Либо try-catch-finally.

На мой взгляд, так более наглядно, чем делать clean-up в конце функции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ресурсом совсем не обязательно являются объекты в памяти, это может быть CS внешнего устройства, spinlock и т.п.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...