Proiectarea mesajelor de eroare bune este dificila. In Java, cel mai adesea, dezvoltatorii se bazeaza doar pe aruncarea de exceptii cu un text mic. In cele mai bune cazuri, mesajul de eroare este suficient de inteles, dar exista o multime de cazuri in care este ineficient.
Un mesaj de eroare bun ar trebui sa descrie:
- cat de grava este problema (poate fi ignorata in siguranta?)
- ce problema a fost intampinata. Aici se opresc de obicei dezvoltatorii. De exemplu, „foo este nul”
- unde a fost intalnita problema (in ce context, de ex. ce fisier a fost compilat, ce numar de linie, …)
- de ce s- a intamplat problema
si, in cele din urma, un set de solutii posibile la problema.
Exceptiile nu sunt bune pentru a rezolva acest lucru, deoarece o exceptie descrie un esec in fluxul de executie a programului. Urmele stivei sunt bune pentru depanare, dar este rar ca unui utilizator ii pasa unde a aparut o problema in programul dvs .: cel mai probabil, ceea ce ii intereseaza este modul in care pot rezolva problema .
In consecinta, JDoctor ofera o biblioteca pentru a facilita proiectarea mesajelor de eroare bune, modelandu-le corect.
Aceasta biblioteca este in prezent in stadii experimentale, feedback-ul este binevenit.
Exemplu
Acesta este un exemplu al modului in care ati construi un nou descriptor de probleme folosind API-ul de comoditate:
jovencitasxxx ver pelis eroticas
porno español creampie maduras tocandose
me follo a abuela caliente
se folla a su hermana colegialas peludas
potro de bilbao porno interactivo gratis
xxx abuelas porno español de maduras
mamasxxx se corre en el coño de su hija
videos porno gratis caseros españolas follando en la playa
michelle jenner desnuda corridas anales
incestos gays superculos
recopilacion pajas videos porno para mujeres gratis
tetonas en español le pilla pajeandose
pornovideo super maduras
viendo como se follan a mi mujer joven folla por dinero
madresxxx inazuma eleven xxx
chupadas milf camara oculta
pelisxxx monica hoyos porno
presentadoras desnudas viejas cachondas
follando en español incesto en espanol
incesto subtitulado porno casadas españolas
uk/bitesize/articles/z2vftrd “) .addSolution (s -> s.withShortDescription) (” mancati ananas pentru desert “)) .addSolution (s -> s.withShortDescription (” opriti adaugarea de ananas la pizza “))
In practica, incurajam utilizatorii sa implementeze propria lor implementare a interfetei Problema (de exemplu extinderea clasei BaseProblem) si sa vina cu constructori topici care sunt specifici unei categorii de probleme.
De exemplu:
Atunci s-ar putea sa va intrebati cum ar trebui redat acest lucru. Ca intotdeauna, raspunsul este „depinde”. jdoctor este agnostic in ceea ce priveste redarea. Nu veti reda un mesaj in acelasi mod daca aveti o CLI, o interfata bogata sau un raport HTML. Pe scurt: redarea este responsabilitatea consumatorului a problemelor.
De exemplu, este posibil sa doriti sa colectati mai multe probleme, sa le sortati dupa categorie, apoi sa redati un mesaj scurt si sa spuneti ca explicatia completa este disponibila intr-un raport.
Cu toate acestea, pentru comoditate, jdoctor-utils ofera un renderer simplu si simplist. Iata un exemplu de iesire pentru primul exemplu:
Module
Acest proiect consta din urmatoarele module publicate sub ID-ul grupului me.champeau.jdoctor:
- jdoctor-core este principalul mosly API format din model
- jdoctor-utils este un modul de comoditate care ofera constructorilor si randatorilor pentru probleme si solutii
- jdoctor-bom este o platforma utilizata pentru alinierea versiunilor de dependenta
Folosirea bibliotecii in proiectul dvs. preferat
Pentru a utiliza jdoctor cu Gradle:
De la Maven:
Cladire
Rulati ./gradlew build








