От применения исключений C++ отказываюсь. Причины:
	* Сложно контролировать поток исполнения;
	* Переусложняется управление примитивами синхронизации в многопоточных
	  программах;
	* Исключения не следует использовать в качестве кодов ошибок, но тогда
	  зачем вообще они нужны?

Взамен libmary предлагает расширенный механизм сохранения информации об ошибках
наподобие errno.

Работа с исключениями производится с помощью макросов:
	* exc_throw - установка новой ошибки;
	* exc_push - установка ошибки, связанной с предыдущей (предыдущая ошибка
	  считается причиной новой);
	* exc_none - сброс стека ошибок.

Каждое исключение - это объект типа Exception с виртуальным методом toString().
С объектами исключений можно использовать механизм RTTI.

