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

  • Koala
    hat ein Thema erstellt try catch phpmailer.

    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.

  • lstegelitz
    antwortet
    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.

    Einen Kommentar schreiben:


  • Koala
    antwortet
    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.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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.

    Einen Kommentar schreiben:

Lädt...
X