Ankündigung

Einklappen
Keine Ankündigung bisher.

try catch phpmailer

Einklappen

Neue Werbung 2019

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

  • try catch phpmailer

    Hallo,

    ich möchte DB-Tabellen updaten wenn der Versand erfolgreich war.

    Wie bau ich das denn hier ein ?

    PHP-Code:
    try {

        
    $mail->Subject  $subject;    
       
    // ....
        
        
    $mail->Send();


    catch (
    phpmailerException $e) {
        
        echo 
    $e->errorMessage(); // Pretty error messages from PHPMailer


    catch (
    Exception $e) {

        echo 
    $e->getMessage(); // Boring error messages from anything else!

    nach $mail->Send(); oder nach den catch-Blöcken ?

    Wenn ichs nach den catch-Blöcken einbau wird ja trotz Fehler
    ein Update gemacht.

    Oder krieg ich dann ne weiße Seite mit ner Fehlermeldung ?

    Wieso kann man in dem Klassengedöns nicht einfach if(!$mail->Send()) machen ?

    Wieso ist $mail-Subject usw. im try-Block drin ? Es wird doch nur auf Send getestet.

    try/catch macht doch nur alles unnötig kompliziert.
    Kann aber auch sein, daß ich zu blöd bin den Quantensprung in der Programmierung zu entdecken.
    Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

  • #2
    Ich würde die Funktion "DB-Tabelle updaten" innerhalb von try nach $mail->send(); einbauen.

    P.S. Gut, dass du dieses Beispiel gebracht hast. Nachdem ich gerade bei meinem Bestellprozess den E-Mail Versand implementiere, werde ich noch ein try catch beim Versand einbauen. Mit Sicherheit eine gute Idee.

    Kommentar


    • #3
      Ich würde die Funktion "DB-Tabelle updaten" innerhalb von try nach $mail->send(); einbauen.
      ja, hört sich logisch an, werd ich so machen.

      Und die echos rausmachen bzw. die Meldungen in $err für eine eventuelle Ausgabe zwischenspeichern,
      wobei mir nicht klar ist was ne "boring message" sein soll.

      Vielleicht kann man sie auch weglassen wenn sie eh nur langweilen.
      Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

      Kommentar


      • #4
        Zitat von Koala Beitrag anzeigen
        try/catch macht doch nur alles unnötig kompliziert.
        Kann aber auch sein, daß ich zu blöd bin den Quantensprung in der Programmierung zu entdecken.
        Im Gegenteil...
        PHP-Code:
        // Verschiedene Rückgabewerte können Fehler bedeuten, abhängig was der Autor definiert hat
        if (function1() === false) {
        }
        if (
        function2() === -1) {
        }
        if (
        function3() === 0) {

        vs.
        PHP-Code:
        // Fehlerbehandlung durch Exception vereinheitlicht...
        try {
          
        function1();
          
        function2();
          
        function3();
        }
        catch(
        Exception $e) {

        Man schreibt weniger Code, der gleichzeitig noch aufgeräumter wirkt, da die Fehlersituationen nicht mehr im eigentlichen Programmcode abgefangen werden, sondern zentral am Ende des Blocks.
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar

        Lädt...
        X