/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
pear og set-error-handler
Fra : Michael Rasmussen


Dato : 04-04-04 11:25

Hej alle,

Forleden foreslog Jonas, at benytte pear error-handling funktion, og det
virker for så vidt også. Dog er der en ting, jeg ikke kan få til at
virke: Hvordan får man skrevet fil og linje ud i fejlmeddelelsen? På
php.dk er der eksempler på, at man skal have fire parametre i sin
errorhandler, men det vil bare ikke virke! Typen og meddelelsen kommer
frem, men altså ikke filnavnet og linjen.

Udpluk af koden:

#main include

<?php
   $errorHandler = &new IO;
   set_error_handler(array(&$errorHandler,'error'));
?>
#main include end

#utility class

<?php
   class IO {
      
      function IO() {
         return $this;
      }
      
      
      function error($type, $message, $errfile, $errline) {
         if (!is_object($this))
            $this = &new IO;
         $path = '../';
         if ($dh = opendir(getcwd())) {
            while (false !== ($file = readdir($dh))) {
               if ($file == 'classes.php') {
                  $path = '';
                  break;
               }
            }
         }
         $mes = $this->header($path);
         $mes .= '<div class="error">
            <h1>'._('Appplication error').'</h1>
            <p>'._('The error message is:').'</p>
            <p>'.$message.'</p>
            <p>File: '.$errfile.'</p>
            <p>Line: '.$errline.'</p>
            <p>'._('The program will now terminate').'.<br /><br />
            <span class="disclaim">'._('If you think this error
            is a bug, please don\'t hesitate sending an error
            message to the developer').'</span></p></div>';
         $mes .= $this->footer();
         print $mes;
         exit(1);
      }
      
   }
?>
#utility end

#alle filer har dette i de to første linjer
<?php
   include_once('../main-include.php');
   PEAR::setErrorHandling(PEAR_ERROR_TRIGGER);   


--
Hilsen/Regards
Michael Rasmussen
--------------------------------------------------------------
Don't kiss an elephant on the lips today.



 
 
Ulrik Nielsen (04-04-2004)
Kommentar
Fra : Ulrik Nielsen


Dato : 04-04-04 13:22

Michael Rasmussen wrote:
> Hej alle,
>
> Forleden foreslog Jonas, at benytte pear error-handling funktion, og det
> virker for så vidt også. Dog er der en ting, jeg ikke kan få til at
> virke: Hvordan får man skrevet fil og linje ud i fejlmeddelelsen? På
> php.dk er der eksempler på, at man skal have fire parametre i sin
> errorhandler, men det vil bare ikke virke! Typen og meddelelsen kommer
> frem, men altså ikke filnavnet og linjen.
>


> function error($type, $message, $errfile, $errline)

denne funktion skal der sendes 4 parametere til $errfile skal sikkert
være __FILE__ og $errline, __LINE__

--
>> ulrik nielsen
excuse of the day : We had to turn off that service to comply with the
: CDA Bill.
from bofh : http://www.cs.wisc.edu/~ballard/bofh/

Michael Rasmussen (04-04-2004)
Kommentar
Fra : Michael Rasmussen


Dato : 04-04-04 14:18

On Sun, 04 Apr 2004 14:22:11 +0200, Ulrik Nielsen wrote:

> > function error($type, $message, $errfile, $errline)
>
> denne funktion skal der sendes 4 parametere til $errfile skal sikkert
> være __FILE__ og $errline, __LINE__
Nu er det jo ikke mig selv, der bestemmer, hvad pear's errorhandler sender
med af parametre. Mener du, at jeg i stedet for $errfile og $errline blot
kan skrive __FILE__ og __LINE__ hvor jeg generere teksten?

--
Hilsen/Regards
Michael Rasmussen
--------------------------------------------------------------
Terminate input by end-of-file or marker, not by count.
- The Elements of Programming Style (Kernighan & Plaugher)



Ulrik Nielsen (04-04-2004)
Kommentar
Fra : Ulrik Nielsen


Dato : 04-04-04 15:36

Michael Rasmussen wrote:
> On Sun, 04 Apr 2004 14:22:11 +0200, Ulrik Nielsen wrote:
>
>
>> > function error($type, $message, $errfile, $errline)
>>
>>denne funktion skal der sendes 4 parametere til $errfile skal sikkert
>>være __FILE__ og $errline, __LINE__
>
> Nu er det jo ikke mig selv, der bestemmer, hvad pear's errorhandler sender
> med af parametre. Mener du, at jeg i stedet for $errfile og $errline blot
> kan skrive __FILE__ og __LINE__ hvor jeg generere teksten?
>


emmm, det kan godt være jeg ikke skal bevæge mig længere ud af denne
tangent, da jeg ikke selv er særlig meget inde i PEAR (endnu).

Dog skal __FILE__ go __LINE__ sendes fra det sted fejlen opstår, ellers
giver det ikke nogen mening.

--
>> ulrik nielsen
excuse of the day : Small animal kamikaze attack on power supplies
from bofh : http://www.cs.wisc.edu/~ballard/bofh/

Nezar Nielsen (06-04-2004)
Kommentar
Fra : Nezar Nielsen


Dato : 06-04-04 10:07

Michael Rasmussen wrote:
> errorhandler, men det vil bare ikke virke! Typen og meddelelsen kommer
> frem, men altså ikke filnavnet og linjen.

Under alle omstændigheder burde du kunne hive det ud via
http://dk2.php.net/debug_backtrace

--
Mvh. Nezar Nielsen
http://fez.dk

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste