[so] assert

Catalin Iacob iacobcatalin at gmail.com
Fri Apr 13 22:59:45 EEST 2007


On 11/6/07, Andrei Ciuca <andrei.ciuca at gmail.com> wrote:
>
> avem voie sa folosim "assert" ?


Da.

Insa, incearca sa-l folosesti cum trebuie. Daca un assert pica trebuie sa
fie din cauza unei greseli a programatorului deci trebuie sa indice clar un
bug. In cazul asta e foarte util si se recomanda folosirea lui.

Exemplu: ai o functie pentru uz intern si esti sigur ca restul codului
trebuie sa paseze ca prim argument un pointer care sa nu fie NULL (practic
decizi ca o preconditie a apelarii functiei e sa se dea un pointer valid nu
NULL). In cazul asta e foarte ok sa dai la inceput assert(p != NULL). Daca
trimiti un pointer NULL inseamna ca ai gresit ceva in logica din codul care
apeleaza functia si assertion failed o sa-ti semnaleze asta.

Daca insa vrei sa deschizi un fisier nu e normal sa zici assert(deschidere
fisier a reusit). Aici e vorba de un eveniment care nu e sub controlul tau
ca programator. Aici ar trebui sa ai un if (deschidere fisier nu a reusit)
da un mesaj de eroare friendly catre user.

Altfel spus, un utilizator ar trebui sa nu poata declansa niciodata un
assert failed prin actiunile lui asupra programului tau.

Dar da; assert e foarte util, folositi-l cu incredere.

Catalin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/so/attachments/20070413/4f61df6a/attachment.htm


More information about the so mailing list