CPP-101: Двусвързан списък с водещ елемент

Обработка на грешки. Член-функции 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_;
	}
	...
Публикувано в CPP-101, Кръг 2, ООП с етикети , , . Постоянна връзка.