Heim  >  Artikel  >  Backend-Entwicklung  >  PHP Master Advanced Try Catch

PHP Master Advanced Try Catch

卡哇伊
卡哇伊nach vorne
2020-07-18 17:33:187862Durchsuche

PHP Master Advanced Try CatchPHP 5 fügt ein Ausnahmebehandlungsmodul hinzu, das anderen Sprachen ähnelt. Im PHP-Code generierte Ausnahmen können von der -Throw-Anweisung ausgelöst und von der Catch-Anweisung abgefangen werden. (Hinweis: Sie müssen zuerst werfen, um zu erhalten)
Code, der eine Ausnahmebehandlung erfordert, muss in einem Try-Codeblock platziert werden, um mögliche Ausnahmen abzufangen.
Jeder Versuch muss mindestens einen entsprechenden Fang haben.
Verwenden Sie mehrere Catches, um von verschiedenen Klassen generierte Ausnahmen abzufangen.
Wenn der Try-Codeblock keine Ausnahme mehr auslöst oder kein Catch gefunden werden kann, der mit der ausgelösten Ausnahme übereinstimmt, setzt der PHP-Code die Ausführung fort, nachdem er zum letzten Catch gesprungen ist.
Natürlich erlaubt PHP das erneute Auslösen von Ausnahmen innerhalb von Catch-Blöcken.
Wenn eine Ausnahme ausgelöst wird, wird der nachfolgende Code (Anmerkung des Übersetzers: bezieht sich auf den Codeblock, wenn die Ausnahme ausgelöst wird) nicht weiter ausgeführt und PHP versucht, den ersten passenden Catch zu finden.

Wenn eine Ausnahme nicht abgefangen wird und keine Notwendigkeit besteht, set_Exception_handler() für die entsprechende Verarbeitung zu verwenden, generiert PHP einen schwerwiegenden Fehler und gibt Uncaught Exception... (nicht abgefangene Ausnahme) aus. zeitnahe Informationen.

Werfen wir zunächst einen Blick auf die grundlegenden Eigenschaften und Methoden der in PHP integrierten Ausnahmeklasse. (Ausgenommen spezifische Implementierung)

<?php
/**
* Exception.php
* 
* PHP5内置的异常类的属性与方法
* 以下这段代码只为说明内置异常处理类的结构,它并不是一段有实际意义的可用代码。
*/

class Exception{
	protected $message = &#39;Unknown exception&#39;; // 异常信息
	protected $code = 0; // 用户自定义异常代码
	protected $file; // 发生异常的文件名
	protected $line; // 发生异常的代码行号

	function __construct($message = null, $code = 0);
	final function getMessage(); // 返回异常信息
	final function getCode(); // 返回异常代码(代号)
	final function getFile(); // 返回发生异常的文件名
	final function getLine(); // 返回发生异常的代码行号
	final function getTrace(); // backtrace() 数组
	final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息

	//可重载的方法
	function __toString(); // 可输出的字符串
}
?>

Beispiele sind wie folgt:

Einschließen von Dateifehlern löst Ausnahme aus

<?php
// 错误的演示
try {
require (&#39;test_try_catch.php&#39;);
} catch (Exception $e) {
echo $e->getMessage();
}
// 正确的抛出异常
try {
if (file_exists(&#39;test_try_catch.php&#39;)) {
require (&#39;test_try_catch.php&#39;);
} else {
throw new Exception(&#39;file is not exists&#39;);
}
} catch (Exception $e) {
echo $e->getMessage();
}

Weitere Tutorials: „php-Tutorial

Das obige ist der detaillierte Inhalt vonPHP Master Advanced Try Catch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen