Рубрики
Uncategorized

Пример класса исключений PHP и операции обработки исключений

Автор оригинала: David Wong.

В этой статье на примерах описаны классы исключений 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 – программ для всех.