PHP异常处理的概念
错误:是程序出现问题时面向过程的处理方式,就是使用特定的函数来捕获(取得)错误信息并进行异常处理;异常:是程序出现问题时面向对象的处理方式,就是使用特定的语法来捕获(取得)错误信息并进行异常处理;
当程序发生的问题面向过程的处理方法
- ...正常执行程序...
- $code=获取出错代号或信息
- 判断是否出错,并进行相应处理
Try
{
//正常执行代码;
}
Catch(exception $e)
{
//上次try范围的语句如果出错,就会自动进入此catch范围;
//其中$e是一个变量(可以用别的名字),是excetpion类的对象
}
基本使用形式
Try
{
..正常执行程序...可以多条
//这里一旦发生错误,就不再执行后面的代码,直接进入catch范围。
}
Catch(exception $e)
{
//上次try范围的语句如果出错,就会自动进入此catch范围;
//其中$e是一个变量(可以用别的名字),是excetpion类的对象
//进行相应的错误处理
//echo $e->GetMessage();异常信息内容
//echo $e->GetCode();异常信息代号
}
PHP自定义异常处理类
自定义异常类需要继承Exception类,并传递相应的参数,然后在自定义异常类中进行处理。PHP系统的Excetpiont类的形式如下:1、Excetpiont类
Exception {
/* Properties */
protected string $message ;
private string $string ;
protected int $code ;
protected string $file ;
protected int $line ;
private array $trace ;
/* Methods */
public __construct ([ string $message="" [, int $code=0 [, Exception $previous=NULL ]]] )
final public string getMessage ( void )
final public int getCode ( void )
final public string getFile ( void )
final public int getLine ( void )
final public array getTrace ( void )
final public string getTraceAsString ( void )
public string __toString ( void )
final private void __clone ( void )
}
2、自定义异常处理类实例
<?php
$lan='en';
class langCnException extends Exception{
function __construct($msg,$code)
{
parent::__construct($msg,$code);
}
}
class langEnException extends Exception{
function __construct($msg,$code)
{
parent::__construct($msg,$code);
}
}
try
{
if($lan=='cn')
{
throw new langCnException('青锋建站','66');
}
elseif($lan=='en')
{
throw new langEnException('qing feng jian zhan','88');
}
}
catch (langCnException $cn)
{
echo $cn->getCode().$cn->getMessage();
}
catch (langEnException $en)
{
echo $en->getCode().$en->getMessage();
}
?>
将PHP常见的错误转化为异常
系统内部有一个错误异常类,他是exception类的子类,其构造函数如下:Class ErrorException extends Exception{
Function __construct($errMsb,$errCode,$errServerity,$errFile,$errLine)
{
//5个形参,分别代表:错误信息,错误代号,错误严重程度,错误文件,错误等号;
}
}
具体做法:错误发生时,会调用“自定义错误处理函数”;
Set_error_handler(“MyErrorHandler”);
Function MyErrorHandler($errMsb,$errCode,$errServerity,$errFile,$errLine)
{
Throw new ErrorException($errMsb,$errCode,$errServerity,$errFile,$errLine);
}
以上就是青锋建站给大家分享的PHP中异常处理的工作机制,以及如何创建PHP自定义异常处理类,如何将常见的错误转化为异常。青锋建站,提供专业的高品质网站制作服务,包括CMS建站开发,PHP原生开发,PHP框架建站。
转载请注明来源网址:青锋建站-http://www.sjzphp.com/webdis/exception_852.html