Обработка на грешки. Член-функции front()
и back()
За индакиция на възникнали грешки класът List
ще използва механизмът за генериране на изключения. За тази цел ще дефинираме специален клас ListError
, който ще се използва за сигнализиране на грешки. Класът има единствена член-променлива message_
, в която се съхранява съобщение за конкретната грешка:
class ListError { const char *const message_; public: ListError(const char *const message=0) : message_(message) {} const char *const get_message() const { return message_; } };
За достъп до първият и последният елемент на списъка дефинираме член-функции front()
и back()
съответно. Специално трябва да се обърне внимание на случая, в който тези функции се викат за празен списък. В тази ситуация тези член-функции ще генерират изключение от типа ListError
.
... int front() const { if(empty()) { throw ListError("front(): list is empty"); } return head_->next_->data_; } int back() const { if(empty()) { throw ListError("back(): list is empty"); } return head_->prev_->data_; } ...