Eigene unterdrückbare Fehlermeldung werfen!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Eigene unterdrückbare Fehlermeldung werfen!

    Wie kann ich eine unterdrückbare Fehlermeldung schreiben.
    Ich unterdrücke beim ausführen einer Funktion in einer Funktion die Fehlermeldung und statt dessen will ich meine eigene Meldung werfen.

    Für die Fehlermeldung habe ich eine Funktion
    _trigger_error($message, $status, $function, $file, $line)
    geschrieben welche eine Fehlermeldung generiert und dann per echo ausgibt (würde ich sie mit trigger_error auswerfen würd ich ein zweites mal den Dateinamen und noch die falsche Zeilennummer bekommen).

    PHP-Code:
    function connect($timeout="") {
        if(empty(
    $this->hostname)){
            
    $this->_trigger_error('no hostname submitted''error',__FUNCTION____FILE____LINE__);
            return 
    FALSE;
        }
        if(
    $this->_connection_possible($timeout)){
            
    $this->connId ftp_connect($this->hostname$port);
            
    $this->logged ftp_login($this->connId,$this->username,$this->password); // hier will ich die Fehlermeldung unterdrücken (mit @) und stattdessen
    //mein eigene werfen. Wenn ich "or die ...." mach kann ich die selbstgeworfene Fehlermeldung dann mit @$object->connect(3) nicht unterdrücken.
        
    }
        if(
    $this->_check())
            return 
    TRUE;

    MfG Markus

  • #2
    Fehlermeldungen unterdrücken mit einem "@" vor dem namen der Funktion.

    Also @mysql_connect(...)

    Wird dir beim Fehler finden nicht helfen aber wenn du willst..
    PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

    Kommentar


    • #3
      Re: Eigene unterdrückbare Fehlermeldung werfen!

      [QUOTE]Original geschrieben von markusschmitt
      PHP-Code:
              $this->logged ftp_login($this->connId,$this->username,$this->password); // hier will ich die Fehlermeldung unterdrücken (mit @) und stattdessen
      //mein eigene werfen. Wenn ich "or die ...." mach kann ich die selbstgeworfene Fehlermeldung dann mit @$object->connect(3) nicht unterdrücken. 
      wie floriam schon sagte, die fehlermeldung von ftp_login unterdrückst du mit einem @ davor.

      ftp_login hat auch einen rückgabewert, FALSE wenn ein fehler auftritt.

      dieser steht nach deiner zuweisung also in $this->logged.

      also liegt es doch nur nahe, dass du diese variable danach abfragst:

      PHP-Code:
      if(!$this->logged) {
         echo 
      "deine fehlermeldung";

      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        des will ich doch gar nicht.
        Trotzdem erstmal Danke für die Hilfe!

        ich will meine eigene Funktion schreiben die unterdrückbar sein soll.

        in dieser funktion kommt ftp_login.. rein. Wenn der login fehlschlägt kommt normalerweise eine Fehlermeldung. Diese unterdrück ich mit @, nun soll aber meine eingene Fehlermeldung erscheinen sofern vor dem Funktionsaufruf kein @ steht

        PHP-Code:
        <?php
        include("class_ftp.inc.php");
        $ftp = new FTP("localhost",21,"ma","mi");
        $ftp->connect(); // hier soll jetzt sofern kein @ vor $ftp->connect() steht und der login fehl schlägt meine Meldung raus gehen und nicht die vorgegebene von ftp_login... . Wie kann ich die Funktion als @ sensitiv machen?
        echo "<pre>";
        print_r($ftp->get_directory_informations());
        echo 
        "</pre>";
        ?>
        MfG Markus

        Kommentar


        • #5
          In deiner FTP Klasse ein @ vor ftp_login machen?

          Ansonsten könntest du auch bei der Funktion entweder true (alles geklappt) oder false (irgendwas ist schief gelaufen ) zurückgeben.

          Und dann die Funktion mit if(!$ftp->login()) { /*Fehlermeldung*/ } aufrufen


          MfG Floriam
          PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

          Kommentar


          • #6
            ach so, jetzt verstehe ich erst, was du willst :-)


            k.A., ob und wie das mit selbst geschriebenen funktionen/klassen geht.

            also workaround würde ich vorschlagen, übergebe der funktion beim aufruf einen parameter, und je nachdem, oder dieser true oder false bzw. 1/0 ist, gibst du dann eine meldung aus oder nicht ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ok, danke erstmal!
              Des hoert sich aber eher nach einer 2. klassigen Lösung an. Kommt sowas vielleicht mit php 5?

              MfG Markus

              Kommentar


              • #8
                habe das ganze irgendwie nicht ganz verstanden.

                Fehlermeldung abschalten
                PHP-Code:
                error_reporting(0); 
                Fehlermeldung einschalten
                PHP-Code:
                error_reporting(E_ALL E_NOTICE); 
                eigene Fehlerbehandlung
                set_error_handler ( error_handler)

                damit müßte sich doch was machen lassen

                Offe

                Kommentar


                • #9
                  set_error_handler ( error_handler)

                  damit wollt ichs auch schon probieren aber die Funktion lässt nur 5 Argumente zu. Bei mir wären es aber 6 die ich gerne übergeben möchte. Naja vielleicht mach ich noch eine Objektvariable auf und hol mir darüber dann die 6. Info. Mal schauen. Danke

                  MfG Markus

                  Kommentar

                  Lädt...
                  X