Retour d'erreurs dans une fonction

Mammouth du PHP | 531 Messages

29 août 2008, 10:41

Bonjour,

Voilà j'aurais simplement voulu savoir comment procéder pour retourner proprement des messages d'erreurs à l'utilisateur lorsque l'on ai dans une fonction.

Par exemple, je trouve cela pas terrible car l'on à des messages texte dans une fonction et que le return de la fonction renvoi une variable qui est la même pour le résultat et pour le message d'erreur.

Code : Tout sélectionner

function LireFichier ( $url ) { $fichier = $url; if ( !file_exists( $fichier ) ) { $donnees = 'La page que vous demandez n\'éxiste pas'; } else { $fichier = fopen( $url, 'r' ); $donnees = fread( $fichier, filesize( $url ) ); fclose ( $fichier ); } return $donnees; } echo LireFichier ( 'toto.html' );
Donc j'ai imaginé cette version là :
function LireFichier ( $url )
{
	$donnees = NULL;
	$erreur = NULL;
	$fichier = $url;
	if ( !file_exists( $fichier ) )
	{
		$erreur = 'La page que vous demandez n\'éxiste pas';
	}
	else
	{
		$fichier = fopen( $url, 'r' );
		$donnees = fread( $fichier, filesize( $url ) );
		fclose ( $fichier );
	}
	return array( $donnees, $erreur );
}
$result = LireFichier ( 'toto.html' );
if ( $result[1] != NULL )
{
echo 'erreur';
}
else
{
echo $result[1];
}
Je pense que c'est un peu plus propre mais j'imagine qu'il y a mieux encore ?
Quels sont vos techniques ?

Merci d'avance

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 août 2008, 10:46

Bonjour,

La gestion des exceptions introduite dans PHP5 est là pour ça!
http://www.php.net/exceptions
et une présentation en français:
http://classes.scriptsphp.org/article.P ... exceptions
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 531 Messages

29 août 2008, 11:09

Bonjour,

La gestion des exceptions introduite dans PHP5 est là pour ça!
http://www.php.net/exceptions
et une présentation en français:
http://classes.scriptsphp.org/article.P ... exceptions
Merci pour les liens
Je regarde, pour l'instant je pige pas trop mais ça va venir ;)