В этой статье на примерах описаны классы исключений PHP и операции обработки исключений. Поделитесь для вашей справки следующим образом:
Обработка исключений классифицируется как обработка ошибок, и PHP добавил классы обработки исключений с 5.1.0.
I. Ненормальная Обработка
Обработка исключений PHP аналогична Java в том, что она использует операторы try, throw, catch и коды при возникновении исключения. Если исключение не поймано и не используется set_exception_handler() При соответствующей обработке произойдет серьезная ошибка (фатальная ошибка), и выводом будет сообщение об ошибке” Неперехваченное исключение “(Не зафиксировано исключение).
1,попробуйте:
Блоки кода для возможных исключений.
2,бросок:
Предоставляет способ инициирования исключения для создания исключения. Каждый бросок должен соответствовать по крайней мере одному улову.
3,поймать:
Перехватывайте исключения и создавайте объекты, содержащие информацию об исключениях.
Примечание: Предположим, что исключение PHP может быть поймано только с помощью броска.
Базовая структура:
try{
#some codes
throw new Exception("message"[,code[,...]]);
}
catch(Exception $ex){
#some codes
}
2. Исключение, базовый класс исключения PHP
Абстрактный:
Exception {
/ * attribute * /
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/ * method * /
public __construct ([ string $message = "" [, int $code = 0 [, Exception $previous = NULL ]]] )
final public string getMessage ( void )
Final public Exception getPrevious (void) // Gets the previous exception in the exception chain
final public int getCode ( void )
final public string getFile ( void )
final public int getLine ( void )
Final public array getTrace (void) // Get exception tracking information
Finally public string getTraceAsString (void) // string returns exception tracking information
public string __toString ( void )
final private void __clone ( void )
}Объяснять:
Из базового класса видно, что объект исключения PHP в основном содержит текстовую информацию (сообщение), код исключения/код (код, который следует использовать для идентификации разработчика), файл ( файл php) возникновения исключения, конкретное местоположение возникновения исключения (строка, номер строки выданного исключения).
Пример:
getFile().",message:" . $e->getMessage().",code:".$e->getCode()."line:".$e->getLine(); } ?>
Браузер выводит результаты:
Исключение:файл:D:\Папка для изучения\wamp\рабочее пространство\базовый php\тест Exception.php,сообщение:Некоторое сообщение об ошибке,код:30 строка:3
На основе классов и объектов в PHP (таких как вызовы методов) подробно см. раздел о классах и объектах.
3. Настройка Классов Исключений
Пример:
class customException extends Exception
{
public function errorMessage()
{
//error message
$errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()
.': '.$this->getMessage().' is not a valid E-Mail address';
return $errorMsg;
}
}
Бросьте и поймайте исключение:
try{
Throw new customException ("This is a custom exception. "";
}
catch(customException $ex){
#some codes
}IV. Множественные перехваты исключения перехвата
Когда в операторе try могут создаваться различные исключения, соответствующие блоки catch могут захватывать различные типы исключений. Как и некоторые из примечательных моментов в java:
1. Поймайте большое исключение. Потому что при возникновении исключения, какой улов выполняется первым, определяется последовательно, и одновременно выполняется только один улов.
2. Выполните попытку и выполните не более одного улова (при возникновении исключения), то есть, если предыдущий улов удовлетворяет выполнению, последний улов не рассматривается. (Общие вопросы)
5. Исключение вложенного броска
Структурные примеры:
try{
try{
Throw new Exception ("the first exception");
}
catch(Exception $e1){
# Relevant Processing
Throw new Exception ("throw an exception after processing"); // throw an exception again
}
}
catch(Exception $e2){
# Relevant Processing
}6. Настройка обработчиков исключений верхнего уровня
set_exception_handler('MyException') Функция устанавливает дескрипторы для обработки всех обнаруженных исключений (имя функции, MyException здесь).
Пример:
Exception: " , $exception->getMessage();
}
set_exception_handler('myException');
throw new Exception('Uncaught Exception occurred');
?>
Результат:
Исключение:Произошло неперехваченное исключение
Больше читателей, интересующихся контентом, связанным с PHP, могут ознакомиться с темами этого сайта: Краткое описание методов обработки ошибок и исключений PHP, Краткое описание использования строк Php, Краткое описание навыков работы с массивами PHP, Введение в Базовую грамматику PHP, Введение в объектно-ориентированное программирование Php, Введение в работу с базами данных php+mysql и общими базами данных Php. Краткое изложение оперативных навыков
Я надеюсь, что эта статья будет полезна для разработки PHP – программ для всех.