GELÖST Exceptions aus vendor-Klasse "selbst" behandeln ?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

GELÖST Exceptions aus vendor-Klasse "selbst" behandeln ?

Beitrag von mad-manne »

EDIT 18:24 Hab es dann doch selber rausgefunden :grin:
--------------------------
Hallo ... ich schon wieder, aber diesmal nix REGEX sondern exception-Handling(von dem ich bisher auch quasi keine Ahnung habe :o )
Insofern bitte ich falsche Terminolgie zu entschuldigen, da das eben auch noch Neuland für mich ist :D

Es geht um folgendes Problem:
Ich schreibe ein Script, welches eine fertige Klasse(via Composer eingebunden) nutzt und versuche nun herauszufinden, wie man die dort vorhandenen Exceptions selbst "abfangen/nutzen" kann, anstatt dass die genutzte Klasse ihren eigenen Fehler-Output ausgibt wie hier zu sehen.
[ externes Bild ]

Ich nehme jetzt mal ein ganz konkretes Beispiel ... es geht um die Ddeboer\Imap-Klasse
Dort gibt es für die server\authenticate-Methode eine "eigene" Exception namens

Code: Alles auswählen

        if (false === $resource || null !== $errorMessage) {
            throw new AuthenticationFailedException(\sprintf(
                'Authentication failed for user "%s"%s',
                $username,
                null !== $errorMessage ? ': ' . $errorMessage : ''
            ), $errorNumber);
        }
Ich würde also gerne diese Exception selbst behandeln, aber das hier scheint nicht zu funktionieren, da der Fehler ja offenbar schon in der genutzten Klasse behandelt wurde und gar nicht in meiner eigenen CATCH-Anweisung "landet"

Code: Alles auswählen

            // Connect to the current server
            try {
                $imap_connection = $this->imapAccountsController->connect(
                    $imap_account['hostname'],
                    $imap_account['port'],
                    $imap_account['imap_open_flags'],
                    $imap_account['username'],
                    $imap_account['password']
                );
            } catch (AuthenticationFailedException $e) {
                $output->writeln('<error>'.$e->getMessage().'</error>');
            }
Bin für jeden Hinweis dankbar ... vielleicht geht es ja sogar ganz einfach und man(ne) muss nur ein paar zusätzliche Tricks anwenden, um das zu lösen.

Danke im Voraus,
Manne
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Antworten

Zurück zu „Coding & Technik“