Sven: Fehlermeldung

Hi!

ich möchte, wenn eines meiner perlscripts nicht läuft, anstatt der fehleranzeige eine andere seite haben, gibt es da irgend eine möglichkeit, das umzuändern?

danke

  1. ich möchte, wenn eines meiner perlscripts nicht läuft, anstatt der fehleranzeige eine andere seite haben, gibt es da irgend eine möglichkeit, das umzuändern?

    Was heißt nicht läuft?

    Die Ausgabe einen 500'er Fehler kannst mit Hilfe eines Eintrages in der .htaccess Datei (sofern du einen Apache server nutzt) entsprechenden ändern.
    Du kannst, falls deine Sript abbricht den die Handler umbiegen und per HTTP Header weiterleiten.

    Es gibt vielfältige Methoden, du solltest deine Problem genauer definieren.

    Struppi.

    1. Es gibt vielfältige Methoden, du solltest deine Problem genauer definieren.

      wenn ich einen fehler im script habe, dann will ich eine html-seite aufrufen lassen. da ich noch an meiner page arbeite, will ich nicht, dass der hintergrund auf einmal anstatt blau weiß wird, das passt einfach nicht zum chema. da sollte dann lieber in meinem style "diese funktion ist zur zeit in arbeit" stehen.
      kann man das vielleicht irgendwie in eine if-schleife einbauen?
      wie würde der vergleich aussehen?

      1. Hallo Sven.

        wenn ich einen fehler im script habe, dann will ich eine html-seite aufrufen lassen.

        Ist dein Webserver ein Apache? Dann dürfte dir die ErrorDocument-Direktive weiter helfen:
        http://httpd.apache.org/docs-2.0/mod/core.html#errordocument

        kann man das vielleicht irgendwie in eine if-schleife einbauen?

        Kommt drauf an. Wenn ein Fehler im Script ist, der zum Abbruch desselben führt, kommt keine scriptgesteuerte Ausgabe an den Client, sondern HTTP-Statuscode 500. Es gibt jedoch die Möglichkeit, Fehler zur Laufzeit abzufangen, wenn der Aufruf einer Funktion dies erlaubt, z.B. bei Dateioperationen oder bei Datenbankverbindungen, nämlich wenn die Funktion nicht das liefert, was erwartet wird (z.B. ein Dateihandle oder ein Objekt). Natürlich kannst du kontextabhängig auch eine if-Abfrage einbauen, z.B um zu prüfen, ob Variablen definiert sind und ob ihr Wert deinen Vorgaben entspricht. Aber wie Struppi schon schrob, es kommt entscheidend darauf an, was du vorhast.

        Freundschaft!
        Siechfred

        --
        Punk's not dead: http://www.siechfreds-welt.de/badreligion.shtml
        Dankbarkeit, man spürt sie ja so selten bei den Menschen, und gerade die Dankbarsten finden nicht den Ausdruck dafür, sie schweigen verwirrt, sie schämen sich und tun manchmal stockig, um ihr Gefühl zu verbergen. (Stefan Zweig)
        ie:) fl:) br:? va:{ ls:? fo:§ rl:( n4:} ss:? de:µ js:{ ch:° sh:( mo:? zu:}
        1. Hi!

          Ist dein Webserver ein Apache? Dann dürfte dir die ErrorDocument-Direktive weiter helfen:
          http://httpd.apache.org/docs-2.0/mod/core.html#errordocument

          Ich bin bei space4free.de angemeldet und da habe ich leider keinen zugriff auf diese fehlerseite. Also würde ich das gerne umleiten.
          das mit dem letzten befehl geben von struppi hat sich ganz gut angehört, kann ich mit dem befehl auch weiterleiten oder ein sub-programm aufrufen?

          kann man das vielleicht irgendwie in eine if-schleife einbauen?

          ich habe nur so gedacht, dass man eine schleife bauen könnte, die er ausführt, wenn ein fehler auftritt.

          mein problem ist es nicht, ein script fertigzumachen, es ist eher, dass ich manchmal etwas mehr zeit dafür brauche und dann zwischenzeitig diese fehlerseite eingeblendet wird. den link will ich nicht immer auf eine andere seite ändern und dann, wenn ich das script weiterschreibe wieder zurück zum testen.

          1. Hallo Sven.

            Ich bin bei space4free.de angemeldet und da habe ich leider keinen zugriff auf diese fehlerseite. Also würde ich das gerne umleiten.

            http://space4free.de/index.php?page=faqconfixx#36 ff. hilft dir da nicht weiter?

            Freundschaft!
            Siechfred

            --
            Punk's not dead: http://www.siechfreds-welt.de/badreligion.shtml
            Dankbarkeit, man spürt sie ja so selten bei den Menschen, und gerade die Dankbarsten finden nicht den Ausdruck dafür, sie schweigen verwirrt, sie schämen sich und tun manchmal stockig, um ihr Gefühl zu verbergen. (Stefan Zweig)
            ie:) fl:) br:? va:{ ls:? fo:§ rl:( n4:} ss:? de:µ js:{ ch:° sh:( mo:? zu:}
          2. das mit dem letzten befehl geben von struppi hat sich ganz gut angehört, kann ich mit dem befehl auch weiterleiten oder ein sub-programm aufrufen?

            Letzten Befehl?
            Ich sprach vom die Handler.

            Du kannst mit Hilfe von:
            $SIG{__DIE__} = sub {};

            zum Abschluss noch print CGI::location('....'); machen.

            kann man das vielleicht irgendwie in eine if-schleife einbauen?

            ich habe nur so gedacht, dass man eine schleife bauen könnte, die er ausführt, wenn ein fehler auftritt.

            es gibt keine if schleifen, du meinst eine Bedingung.

            mein problem ist es nicht, ein script fertigzumachen, es ist eher, dass ich manchmal etwas mehr zeit dafür brauche und dann zwischenzeitig diese fehlerseite eingeblendet wird. den link will ich nicht immer auf eine andere seite ändern und dann, wenn ich das script weiterschreibe wieder zurück zum testen.

            Kann es sein, dass du das Modul:
            CGI::Carp qw/fatalsToBrowser/
            einbinden möchtest?
            Damit zeigt dir dein Browser alle Fehler an.

            Struppi.

            1. Hi,

              Du kannst mit Hilfe von:
              $SIG{__DIE__} = sub {};
              zum Abschluss noch print CGI::location('....'); machen.

              Vorausgesetzt, daß noch keine Ausgabe geschehen ist. Oder täusche ich mich da?

              cu,
              Andreas

              --
              MudGuard? Siehe http://www.Mud-Guard.de/
              Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
              1. Vorausgesetzt, daß noch keine Ausgabe geschehen ist. Oder täusche ich mich da?

                absolut richtig.
                Dann geht's nicht.

                Struppi.

      2. wenn ich einen fehler im script habe, dann will ich eine html-seite aufrufen lassen. da ich noch an meiner page arbeite, will ich nicht, dass der hintergrund auf einmal anstatt blau weiß wird, das passt einfach nicht zum chema. da sollte dann lieber in meinem style "diese funktion ist zur zeit in arbeit" stehen.

        Wenn du einen Fehler im Skript hast, solltest du den beseitigen statt irgendwelche Seiten anzeigen zu lassen.

        Aber du kannst natülich mit hilfe der .htacces datei dir eine eigene Fehlerseite gestalten.

        kann man das vielleicht irgendwie in eine if-schleife einbauen?

        es gibt keine if schleife.

        wie würde der vergleich aussehen?

        Von was?
        Wenn dein Skript mit einem Fehler abbricht ist es fertig und du kannst ncihts mehr vergleichen. Es gibt aber in Perl die Möglichkeiten beim sterben noch eine Funktion auszuführen, dazu kannst du den SIG Handler von die umbiegen.

        aber bezweifle, dass es das ist was du willst. Wie gesagt mach deine skript fehlerfrei dann hast du das Problem nicht.

        Struppi.