Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo-ca-cd:laboratoare:exceptii [2024/01/14 19:18]
aghiorghita [Exerciţii]
poo-ca-cd:laboratoare:exceptii [2024/01/14 19:22] (current)
aghiorghita [Exerciţii]
Line 336: Line 336:
             *''​TODO2''​ - ia cartea book4 din librărie. Dacă nu există, adaug-o.             *''​TODO2''​ - ia cartea book4 din librărie. Dacă nu există, adaug-o.
         * Atenție la tratarea excepțiilor! (A se afișa un mesaj corespunzător fiecărui caz, ca în exemplu).         * Atenție la tratarea excepțiilor! (A se afișa un mesaj corespunzător fiecărui caz, ca în exemplu).
-    - **(2p)** Dorim să implementăm un Logger pe baza pattern-ului Chain-of-responsibility,​ definit în laborator, pe care îl vom folosi să păstram un jurnal de evenimente al unui program: +    - **(2p)** Dorim să implementăm un ''​Logger'' ​pe baza pattern-ului Chain-of-responsibility,​ definit în laborator, pe care îl vom folosi să păstram un jurnal de evenimente al unui program: 
-        - Creați enumerația LogLevel, ce va acționa ca un bitwise flag, care va conține: +        - Creați enumerația ​''​LogLevel''​, ce va acționa ca un bitwise flag, care va conține: 
-            * valorile - Info, Debug, Warning, Error, FunctionalMessage,​ FunctionalError. +            * valorile - ''​Info''​''​Debug''​''​Warning''​''​Error''​''​FunctionalMessage''​''​FunctionalError''​
-            * Această enumerație va expune și o metodă statică all() care va întoarce o colecție de EnumSet<​LogLevel>​ în care vor fi toate valorile de mai sus (Hint: EnumSet.allOf()). +            * Această enumerație va expune și o metodă statică ​''​all()'' ​care va întoarce o colecție de EnumSet<​LogLevel>​ în care vor fi toate valorile de mai sus (Hint: ​''​EnumSet.allOf()''​). 
-        - Creați o clasă abstractă LoggerBase care:+        - Creați o clasă abstractă ​''​LoggerBase'' ​care:
             * va primi în constructor un obiect de tip EnumSet<​LogLevel>​ care va defini pentru ce nivele de log se va afisa mesajul             * va primi în constructor un obiect de tip EnumSet<​LogLevel>​ care va defini pentru ce nivele de log se va afisa mesajul
             * va păstra o referință către următorul LoggerBase la care se trimite mesajul             * va păstra o referință către următorul LoggerBase la care se trimite mesajul
-            * va expune o metodă publică setNext ce va primi un LoggerBase și va seta următorul delegat din lista de responsabilitate +            * va expune o metodă publică ​''​setNext'' ​ce va primi un LoggerBase și va seta următorul delegat din lista de responsabilitate 
-            * va defini o metodă abstractă protected writeMessage ce va primi mesajul care trebuie afișat și afișează mesajul în cauză +            * va defini o metodă abstractă protected ​''​writeMessage'' ​ce va primi mesajul care trebuie afișat și afișează mesajul în cauză 
-            * va expune o metodă publică message ce va primi mesajul care trebuie afișat și o severitate de tip LogLevel (adică Info, Debug, Warning, Error, FunctionalMessage sau FunctionalError). Dacă instanța de logger conține această severitate în colecția primită în constructor,​ atunci se va apela metoda writeMessage. Apoi se vor pasa mesajul și severitatea către următorul delegat din lista de responsabilitate (dacă există unul)+            * va expune o metodă publică ​''​message'' ​ce va primi mesajul care trebuie afișat și o severitate de tip LogLevel (adică Info, Debug, Warning, Error, FunctionalMessage sau FunctionalError). Dacă instanța de logger conține această severitate în colecția primită în constructor,​ atunci se va apela metoda writeMessage. Apoi se vor pasa mesajul și severitatea către următorul delegat din lista de responsabilitate (dacă există unul)
         - Definiți clasele de mai jos care vor extinde LoggerBase și implementa metoda writeMessage:​         - Definiți clasele de mai jos care vor extinde LoggerBase și implementa metoda writeMessage:​
-            * ConsoleLogger - care va scrie toate tipurile de LogLevel (Hint: all()) și va prefixa mesajele cu [Console] +            * ''​ConsoleLogger'' ​- care va scrie toate tipurile de LogLevel (Hint: all()) și va prefixa mesajele cu ''​[Console]''​ 
-            * EmailLogger - care va scrie doar tipurile FunctionalMessage și FunctionalError și va prefixa mesajele cu [Email] +            * ''​EmailLogger'' ​- care va scrie doar tipurile FunctionalMessage și FunctionalError și va prefixa mesajele cu ''​[Email]''​ 
-            * FileLogger - care va scrie doar tipurile Warning și Error și va prefixa mesajele cu [File] +            * ''​FileLogger'' ​- care va scrie doar tipurile Warning și Error și va prefixa mesajele cu ''​[File]''​ 
-        - Completați cele 2 TODO-uri rămase în metoda main din clasa Main. (Hint: EnumSet.of() pentru constructori)+        - Completați cele 2 TODO-uri rămase în metoda main din clasa Main. (Hint: ​''​EnumSet.of()'' ​pentru constructori)
  
 ==== Referinţe ==== ==== Referinţe ====
poo-ca-cd/laboratoare/exceptii.1705252734.txt.gz · Last modified: 2024/01/14 19:18 by aghiorghita
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0