suchen
HeimBackend-EntwicklungPHP-TutorialWie kann man in PHP Fehler umgehen und die Methode C aufrufen, wenn Methode A aufruft Methode B?

Wie kann man in PHP Fehler umgehen und die Methode C aufrufen, wenn Methode A aufruft Methode B?

Fehlerbehandlungs- und Fehlertoleranzmechanismus bei PHP -Methodenaufrufen

In diesem Artikel wird untersucht, wie die Methode B anmutig behandelt werden kann, wenn die Methode B in der Methode B in PHP aufruft und die Methode C ausführen kann, wenn ein Fehler auftritt. Wir werden anhand von Beispielen demonstrieren, wie der Ausnahmebehandlungsmechanismus von PHP zum Erstellen robuster Code verwendet wird.

Angenommen, wir haben eine Klasse, die drei Methoden enthält: a() , b() und c() . Das Ziel ist es, b() in a() aufzurufen und falls b() Fehler aufzurufen, dann c() für die Fehlerverarbeitung oder Wiederherstellung ausführen.

Ursprünglicher Code (anfällig für Fehler):

 öffentliche Funktion a () {
    $ this-> b ();
    $ this-> c ();
}

Es gibt ein Problem mit diesem Code: Wenn b() eine Ausnahme ausgelegt hat, wird c() nicht ausgeführt.

Verbesserter Code (mit Ausnahmebehandlung):

 öffentliche Funktion a () {
    versuchen {
        $ this-> b ();
    } catch (\ ausnahme $ e) {
        // Fehlerprotokoll aufzeichnen oder andere Fehler_log ausführen ("Methode b () fehlgeschlagen:". $ E-> getMessage ());
        $ this-> c ();
    }
}

Dieser Code verwendet try...catch Block. Wenn b() irgendeine Art von Ausnahme ( \Exception oder seine Unterklasse) auswirkt, fängt catch -Block die Ausnahme an, protokolliert die Fehlermeldung (ein fortgeschrittenerer Protokollierungsmechanismus kann verwendet werden) und rufen Sie dann c() auf.

Behandeln Sie einen bestimmten Fehler: Zugriff auf nicht existierende Array-Tasten

Der im Bild gezeigte Fehler versucht, auf eine Array -Taste zuzugreifen, die nicht vorhanden ist. Wir können solche Fehler durch die Verwendung isset() oder array_key_exists() verwenden, bevor wir auf das Array -Element zugreifen:

Verbesserte b() Methode:

 öffentliche Funktion b () {
    $ arr = [];
    if (array_key_exists ('key', $ arr)) {
        echo $ arr ['key'];
    } anders {
        Neue \ Ausnahme werfen ("Array -Schlüssel 'Schlüssel' existiert nicht.");
    }
}

Wenn nun 'key' in $arr existiert, wird b() eine benutzerdefinierte Ausnahme auswirken, die vom catch in a() gefangen wird.

Erweitertere Fehlerbehandlung: Benutzerdefinierte Ausnahmeklasse

Um verschiedene Arten von Fehlern klarer zu behandeln, können Sie benutzerdefinierte Ausnahmegementen erstellen:

 Klasse ArrayKeyNotFoundException erweitert \ Ausnahme {}

öffentliche Funktion b () {
    $ arr = [];
    if (! array_key_exists ('key', $ arr)) {
        NeuarrayKeyNotFoundException werfen ("Array -Schlüssel 'Schlüssel' existiert nicht.");
    }
    echo $ arr ['key'];
}

öffentliche Funktion a () {
    versuchen {
        $ this-> b ();
    } catch (arrayKeyNotFoundException $ e) {
        ERROR_LOG ("Es gibt keine Ausnahme für den Array-Schlüssel:". $ e-> getMessage ());
        $ this-> c ();
    } catch (\ ausnahme $ e) {
        ERROR_LOG ("Andere Ausnahmen:". $ e-> getMessage ());
        // andere Arten von Ausnahmen behandeln}
}

Durch das Anpassen von Ausnahmeklassen können verschiedene Arten von Fehlern genauer behandelt werden, wodurch die Lesbarkeit und Wartbarkeit des Codes verbessert werden kann. Dies macht den Fehler flexibler und effizienter.

Mit den oben genannten Methoden können wir Fehler in PHP -Methodenaufrufen effektiv behandeln und entsprechende Fehlerbehandlungen oder Wiederherstellungsvorgänge nach Bedarf durchführen, wodurch eine robustere und zuverlässigere Anwendung erstellt wird.

Das obige ist der detaillierte Inhalt vonWie kann man in PHP Fehler umgehen und die Methode C aufrufen, wenn Methode A aufruft Methode B?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
ai合并图层的快捷键是什么ai合并图层的快捷键是什么Jan 07, 2021 am 10:59 AM

ai合并图层的快捷键是“Ctrl+Shift+E”,它的作用是把目前所有处在显示状态的图层合并,在隐藏状态的图层则不作变动。也可以选中要合并的图层,在菜单栏中依次点击“窗口”-“路径查找器”,点击“合并”按钮。

ai橡皮擦擦不掉东西怎么办ai橡皮擦擦不掉东西怎么办Jan 13, 2021 am 10:23 AM

ai橡皮擦擦不掉东西是因为AI是矢量图软件,用橡皮擦不能擦位图的,其解决办法就是用蒙板工具以及钢笔勾好路径再建立蒙板即可实现擦掉东西。

谷歌超强AI超算碾压英伟达A100!TPU v4性能提升10倍,细节首次公开谷歌超强AI超算碾压英伟达A100!TPU v4性能提升10倍,细节首次公开Apr 07, 2023 pm 02:54 PM

虽然谷歌早在2020年,就在自家的数据中心上部署了当时最强的AI芯片——TPU v4。但直到今年的4月4日,谷歌才首次公布了这台AI超算的技术细节。论文地址:https://arxiv.org/abs/2304.01433相比于TPU v3,TPU v4的性能要高出2.1倍,而在整合4096个芯片之后,超算的性能更是提升了10倍。另外,谷歌还声称,自家芯片要比英伟达A100更快、更节能。与A100对打,速度快1.7倍论文中,谷歌表示,对于规模相当的系统,TPU v4可以提供比英伟达A100强1.

ai可以转成psd格式吗ai可以转成psd格式吗Feb 22, 2023 pm 05:56 PM

ai可以转成psd格式。转换方法:1、打开Adobe Illustrator软件,依次点击顶部菜单栏的“文件”-“打开”,选择所需的ai文件;2、点击右侧功能面板中的“图层”,点击三杠图标,在弹出的选项中选择“释放到图层(顺序)”;3、依次点击顶部菜单栏的“文件”-“导出”-“导出为”;4、在弹出的“导出”对话框中,将“保存类型”设置为“PSD格式”,点击“导出”即可;

ai顶部属性栏不见了怎么办ai顶部属性栏不见了怎么办Feb 22, 2023 pm 05:27 PM

ai顶部属性栏不见了的解决办法:1、开启Ai新建画布,进入绘图页面;2、在Ai顶部菜单栏中点击“窗口”;3、在系统弹出的窗口菜单页面中点击“控制”,然后开启“控制”窗口即可显示出属性栏。

GPT-4的研究路径没有前途?Yann LeCun给自回归判了死刑GPT-4的研究路径没有前途?Yann LeCun给自回归判了死刑Apr 04, 2023 am 11:55 AM

Yann LeCun 这个观点的确有些大胆。 「从现在起 5 年内,没有哪个头脑正常的人会使用自回归模型。」最近,图灵奖得主 Yann LeCun 给一场辩论做了个特别的开场。而他口中的自回归,正是当前爆红的 GPT 家族模型所依赖的学习范式。当然,被 Yann LeCun 指出问题的不只是自回归模型。在他看来,当前整个的机器学习领域都面临巨大挑战。这场辩论的主题为「Do large language models need sensory grounding for meaning and u

ai移动不了东西了怎么办ai移动不了东西了怎么办Mar 07, 2023 am 10:03 AM

ai移动不了东西的解决办法:1、打开ai软件,打开空白文档;2、选择矩形工具,在文档中绘制矩形;3、点击选择工具,移动文档中的矩形;4、点击图层按钮,弹出图层面板对话框,解锁图层;5、点击选择工具,移动矩形即可。

AI抢饭碗成真!近500家美国企业用ChatGPT取代员工,有公司省下超10万美元AI抢饭碗成真!近500家美国企业用ChatGPT取代员工,有公司省下超10万美元Apr 07, 2023 pm 02:57 PM

自从ChatGPT掀起浪潮,不少人都在担心AI快要抢人类饭碗了。然鹅,现实可能更残酷QAQ......据就业服务平台Resume Builder调查统计,在1000多家受访美国企业中,用ChatGPT取代部分员工的,比例已达到惊人的48%。在这些企业中,有49%已经启用ChatGPT,还有30%正在赶来的路上。就连央视财经也为此专门发过一个报道:相关话题还曾一度冲上了知乎热榜,众网友表示,不得不承认,现在ChatGPT等AIGC工具已势不可挡——浪潮既来,不进则退。有程序员还指出:用过Copil

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),