Home >Backend Development >PHP Tutorial >Detailed explanation of PHP exception_PHP tutorial
What are the exceptions in PHP?
PHP 5 provides a new object-oriented approach to error handling. Exception handling is used to alter the normal flow of a script when a specified error (exception) condition occurs. This situation is called an exception.
General usage:
[php]
function test() {
Throw new Exception("Exception");
}
try {
test();
} catch (Exception $e) {
echo $e->getMessage();
}
throw new Exception('XXX'): Throw an exception
try: Functions that use exceptions should be located within the "try" code block. If no exception is triggered, the code continues execution as usual. But if an exception is triggered, an exception will be thrown.
Catch: The code block will catch the exception and create an object containing exception information
Custom exception class:
[php]
class myException extends Exception {
public function errorMessage() {
$errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()
.': '.$this->getMessage().' is not a valid E-Mail address';
Return $errorMsg;
}
}
try {
throw new myException($email);
}catch (myException $e){
echo $e->errorMessage();
}
The myException class is a custom exception class that must inherit Exception
Exception is a built-in exception class that comes with PHP. By default, PHP's default built-in exception class will be used, but we can customize it into an exception class that meets our own needs through customization.
When using a custom exception class, throw new myException also needs to throw a custom exception class name
When catching, you also need to capture a custom exception class
If an exception is thrown without catching it, an error will occur in the PHP code, as follows:
[sql]
Fatal error: Uncaught exception 'myException' in D:AppServwwwcctvtrunkindex.php:12 Stack trace: #0 {main}
thrown in D:AppServwwwcctvtrunkindex.php on line 12
PHP default exception class details:
[php]
class exception
{
Protected $message = 'Unknow exception'; //Customized exception message
Protected $code = 0; //Defined exception code
Protected $file; //The name of the PHP program where the exception occurred
Protected $line; //The PHP line number where the exception occurred
//Constructor used to pass user-defined exception information and user-defined exception code
Function __construct($message=null,$code=0);
final function getMessage();
final function getCode();
final function getFile();
final function getLine();
Final function getTrace(); //Return the route of exception delivery in the form of an array
Final function getTraceAsString(); //Return getTrace function information formatted into a string
Function __toString(); //Overloadable, used to return an output string
}
You can see that there are many custom variables and methods in the PHP default exception class
$e->getMessage usually gets error message
$e->getCode() usually gets the error code
$e->getFile() gets wrong file information
$e->getLine() Get the number of error lines
$e->getTrace() file path passed by exception
__toString() can generally be overloaded to return an output string
The role of PHP exception classes:
To capture exceptions, you can generally throw exceptions when the MYSQL connection fails or the business logic is wrong, and receive them at the top of the code.
Exception analysis and processing. When an exception occurs, the abnormal error information can be captured and written to the log.
Friendly prompt information can be returned, for example, the WEB side can return page form, or the AJAX side can return JSON data format.
Principle: If an exception is thrown, you must catch it, otherwise PHP will report an error.