Упражнения за извънаудиторна заетост

Задача

Направете система за блог, за целта ще се нуждаете от:

Клас редакция (Version), класът трябва да има полета за създател и редактирал, в който да се съхраняват имената на автор и имената на автор, който е направил редакция. Следвайте принципите за капсулация при създаването на обекти от класа.

Създайте клас за изключения, които възникват в класа Version (VersionException). Класът за изключенията трябва да наследява базовия клас Exception и да прииема съобщение за грешка, катоп параметър на конструктора си.

Приложете класа за изключения VersionException при сетване на стойностио за полетата. Да се обработи нулева и празна стойност на полетата за създател и редактор, като се хвърля изключение с текст “Created by cannot be null” и “Modified by cannot be null”

Клас коментар (Comment), класът трябва да наследява Version и да има поле за съдържание. Следвайте принципите за капсулация при създаването на обекти от класа.

Създайте клас за изключения, които възникват в класа Comment (CommentException). Класът за изключенията трябва да наследява базовия клас Exception и да прииема съобщение за грешка като параметър на конструктора си.

Приложете класа за изключения CommentException при сетване на стойностите за полетата. Да се обработи нулева и празна стойност на полетата, като се хвърля изключение с текст “Comment cannot be empty”.

Клас статия (Article), класът трябва да наследява Version и да има полета за заглавие, съдържание и масив от коментари до 50 коментара. Следвайте принципите за капсулация при създаването на обекти от класа.

Създайте клас за изключения, които възникват в класа Article (ArticleException). Класът за изключенията трябва да наследява базовия клас Exception и да прииема съобщение за грешка като параметър на конструктора си.

Приложете класа за изключения ArticleException при сетване на стойностите за полетата. Да се обработи нулева и празна стойност на полетата, като се хвърля изключение с текст “Article title cannot be empty”, “Article content cannot be empty”, “Comment cannot be null”.

Създайте клас Blog със статичен масив от 1000 статии и име на автор. Конструкторът приема името на автора като параметър и има:

  • Метод за добавяне на статия, предава изключенията от класа Article
  • Метод за добавяне на коментар, по заглавие на статия и коментар, ако няма такава статия да се хвърли изключение “Missing article”, и да се предадат изключенията от класа Comment

В main да се създадат два обекта Blog с различни автори и да се добавят статии от двамата автори и коментари за тези статии. Обработете изключенията, като извеждате съобщенията за грешка в конзолата.