Gestion d'erreur plus souple.

Les erreurs sont convertibles en string pour avoir une valeur par défaut, si on ignore l'erreur.
This commit is contained in:
Georges Dupéron 2010-08-04 21:41:39 +02:00
parent 7a27127c24
commit ffb4f1e182
3 changed files with 21 additions and 4 deletions

View File

@ -1,6 +1,10 @@
<?php
class Erreur {
public $type = "erreur";
public $message = "erreur";
public $string = "";
public static function fatale($message) {
echo '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
@ -22,6 +26,20 @@ class Erreur {
//echo "\n"; debug_print_backtrace();
exit;
}
public static function lecture($message) {
$t = new self("lecture", $message);
}
public function __construct($type, $message, $string = "[debug:erreur]") {
$this->type = $type;
$this->message = $message;
$this->string = $string;
}
public function __toString() {
return $this->string;
}
}
?>

View File

@ -73,8 +73,7 @@ class Stockage {
if ($forcer_permissions || Permissions::vérifier_permission($chemin, "get_prop")) {
return Système_fichiers::lire(self::fichier_prop($chemin, $prop));
} else {
Erreur::fatale("Permission non accordée pour la lecture de chemin: " . $chemin->get() . " propriété: " . $prop);
// return false;
return Erreur::lecture("Permission non accordée pour la lecture de chemin: " . $chemin->get() . " propriété: " . $prop);
}
}
@ -84,7 +83,7 @@ class Stockage {
if (Permissions::vérifier_permission($chemin, "get_prop")) {
return Système_fichiers::envoyer_fichier_directement(self::fichier_prop($chemin, $prop));
} else {
return false;
return Erreur::lecture("Permission non accordée pour la lecture de chemin: " . $chemin->get() . " propriété: " . $prop);
}
}

View File

@ -25,7 +25,7 @@ class Système_fichiers {
}
public static function lire($chemin_fs) {
if (!file_exists($chemin_fs)) Erreur::fatale("Ne peut lire le fichier " . $chemin_fs); // return false;
if (!file_exists($chemin_fs)) return Erreur::lecture("Ne peut lire le fichier " . $chemin_fs);
return file_get_contents($chemin_fs);
}