dolibarr-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Dolibarr-dev] Problème sur la fonction update de societe.class.php


From: Gael Canal
Subject: Re: [Dolibarr-dev] Problème sur la fonction update de societe.class.php
Date: Thu, 08 Dec 2005 00:59:05 +0100

Le jeudi 08 décembre 2005 à 00:33 +0100, Laurent Destailleur (Eldy) a
écrit :
> Euh je crois que c'est plutot l'inverse. La plupart des fonctions 
> renvoient négatif en cas d'erreur et positif en cas de succès (plus de 
> 325, sans compter celle qui retourne un autre positif comme le résultat 
> d'un comptage ou qui retourne l'id d'un objet crée).
> Il y a encore beaucoup de fonctions qui font return 0 (316) mais presque 
> toute font return 0 pour signaler une erreur et return 1 en cas de 
> succès. Il est donc plus simple de modifier celles la pour modifier le 0 
> (qui pour elles veut dire erreur) en négatif (-1, -2 selon erreur) où la 
> y a plus d'ambiguité car cela ne change pas le cas succès pour elle.
> A mon avis il faut mieux instaurer que succès c'est >= 0 (plutot que = 0 
> seul) et que erreur c'est < 0. Cela permet d'etre proche plus proche du 
> but (à moindre risque)...
> 

Je met mon petit grain de sel dans la discussion :

sous unix, l'execution correcte d'un programme retourne 0, >0 en cas
d'erreur. idem sous dos/win (errorlevel).

la construction 
if (!$erreur=ma_fonction()) {
...
}
me semble très intuitive et implique erreur=0 en cas de succès (remarque
pour laurent : pourquoi avoir plusieurs codes de succès ?)

en revanche, pour des constructeurs ou des fonctions renvoyant un objet,
le mécanisme est souvent inversé : null en cas d'erreur / objet en cas
de réussite... 
Dans PEAR, cette question est résolue par le déclenchement d'une
exception et le renvoi d'un objet PEAR::Error (je suppose) testé par
PEAR:isError($result).
Cela alourdit le code, mais c'est une solution.

Voila, my two cents...
++
Gael





reply via email to

[Prev in Thread] Current Thread [Next in Thread]