Heim  >  Fragen und Antworten  >  Hauptteil

Der Try/Catch-Block in PHP kann Ausnahmesituationen nicht abfangen

<p>Ich versuche, dieses Beispiel Nr. 1 von dieser Seite auszuführen: http://php.net/manual/en/sprache.Exceptions.php</p> <pre class="brush:php;toolbar:false;"><?php Funktion inverse($x) { if (!$x) { throw new Exception('Division durch Null.'); } return 1/$x; } versuchen { echo inverse(5) . echo inverse(0) . } Catch (Ausnahme $e) { echo 'Abgefangene Ausnahme: ', $e->getMessage(), "n"; } // Ausführung fortsetzen echo „Hallo Welt“; ?></pre> <p>Die Ausgabe, die ich erhalte, ist jedoch nicht erwartet: </p> <pre class="brush:php;toolbar:false;">0.2 Schwerwiegender Fehler: Nicht abgefangene Ausnahme „Exception“ mit der Meldung „Division durch Null“. inxxx: 7 Stack-Trace: #0 xxx(14): inverse(0) #1 {main} in xxx in Zeile 7</pre> geworfen <p>Die von mir verwendeten Entwicklungsumgebungen sind <code>UniServer 3.5</code> und <code>PHP 5.2.3</code></p>
P粉226413256P粉226413256447 Tage vor487

Antworte allen(1)Ich werde antworten

  • P粉611456309

    P粉6114563092023-08-23 14:46:31

    我刚刚遇到了这个确切的问题,感觉好像我甚至已经复制了异常的名称,但它却没有捕获。结果是我的愚蠢错误,但我认为我应该在这里发布我的情况,以防有其他人处于同样的情况。

    我的异常在我的命名空间中被称为A,而脚本在一个命名空间中被称为B。问题是我有一个A\MyException,它等于(在PHP中)\B\A\MyException(因为我的脚本在命名空间中被称为B!)。我所要做的就是在异常名称前添加反斜杠(或者叫什么名字)来修复它,使其看起来像这样:\A\MyException

    Antwort
    0
  • StornierenAntwort