При написании программ в рамках методики defensive programming необходимо использовать систему обработки ошибок. Подобная система должна предоставлять пользователю следующие функциональные возможности:- Assert(condition, message) – в debug версии программы функция выдаетпользователю сообщение message если условие condition не выполняется. При этомпользователю на выбор предсоавляются три варианта дальнейших действий –продолжить работу программы игнорируя этот assert в дальнейшем, продолжить работу программы игнорируя все assert’ы и прервать работу программы. В release версиии функция не должна делать ничего. В окне должно отображаться имя файла в ктором произошел ASSERT и строчка- FatalError(condition, message, return value) – функция работает одинаково вdebug и release режимах. При не выполнении условия condition пользователю выдается сообщение message и вызывается оператор return с параметром returnvalue.- SystemOpen – на вход передается максимальное количество assert’ов в системе.- SystemClose – функция закрытия системы.Необходимо реализовать эту систему и написать тестовое приложение для ее проверки. Приложение должно иметь две конфигурации Debug и Release.