[CSProjects] Mesaje de eroare si biblioteci

Vlad Dogaru ddvlad at anaconda.cs.pub.ro
Mon Jun 18 12:49:30 EEST 2007


Salut,

nu am mai scris niciodata o biblioteca. Cum ar trebui sa tratez erorile,
astfel incat sa poata fi afisate cat mai clar mesajele si locurile unde
au aparut erori?

In momentul de faţă am urmatoarea schita de functionare, care este voit
mult prea generala, pentru ca sugestiile sa fie valabile in toate
cazurile.

         fuctia de interfata (1) apeleaza o functie statica (2), iar
         aceasta, la randul ei, apeleaza o alta functie statica (3).

Cum as putea sa fac ca un mesaj de eroare in functia 3 sa se
propage pana la nivelul utilizatorului (pana in stderr), oprind
rularea functiilor 1 si/sau 2 daca este cazul? Stiu ca asta e o
problema de exceptii si limbaje de nivel inalt, dar ma gandesc
ca am vazut lucruri similare si in programe C, mesaje de genul:

         program: biblioteca: fopen: file not found.

Planul meu era ca:
* daca o functie intoarce un pointer, sa intoarca 0 (NULL) la eroare
* daca o functie intoarce intreg pozitiv sa intoarca -1 la eroare daca o
* functie e void, sa o fac int si sa intoarca 0 la succes si -1 la
eroare.

Problema ar fi unde/daca sa folosesc perror. Daca as folosi in functia
(1), apoi as intoarce eroare, exista posibilitatea (mare) ca si functia
externa sa prinda eroarea si sa mai afiseze odata un mesaj similar. E
asta de dorit?

Daca cineva are un exemplu de cum ar trebui sa arate, as aprecia nespus
de mult. Daca trebuie sa regandesc problema, va rog indrumati-ma.

Multumesc,
Vlad

PS: e frustrant sa ai o varianta incipienta in minte si de fiecare data
cand te apuci de codat sa te lovesti de lucruri auxiliare, dar pe care
nu vrei sa le scapi din vedere.
--
/* no comment */




More information about the cspay-dev mailing list