资讯

展开

常见的PHP错误与异常分析和解决办法

作者:快盘下载 人气:

菜鸟级的php程序员,遇到下边的问题都会头大,小编为你整理一些常见的PHP错误与异常分析和解决办法。


错误报告关闭和打开

php.ini 的 display_errors = On 或者 Off

代码里 ini_set(‘display_errors’,1) 或者 0


错误报告级别


最佳实践

开发环境下打开错误报告。并且错误报告级别 E_ALL
正式环境一定要关闭错误报告

//显示所有的错误类型
error_reporting(E_ALL);

//显示所有的错误类型,除了NOTICE 提示之外
error_reporting(E_ALL ^ E_NOTICE);
error_reporting(E_ALL &~ E_NOTICE);

//关闭所有的PHP错误报告
error_reporting(0);

//报告所有的错误类型
error_reporting(-1);

举例

try {
    //找不到文件
    throw new Exception('找不到文件',1);
    //没有权限访问
    throw new Exception('没有权限',2);
} catch (Exception $e) {
    $errno =  $e -> getCode();

    if($errno == 1){
        echo $e -> getFile();
    }elseif($errno == 2){
        echo $e -> getLine();
    }
}

文件异常类

class FileException extends Exception{
    public function fileInfo(){
        return $this->getMessage();
    }
}

try {
    print "open file";
    throw new FileException('file does not exist');
} catch (Exception $e) {
    print $e -> fileInfo();
}

捕获多个异常

class FileException extends Exception{}

//文件不存在的异常
class FileNotExistException extends FileException{}
//文件权限异常 
class FilePermissionException extends FileException{}

function fileHandle(){
    //文件不存在
    throw new FileNotExistException('file does not exist');

    //文件权限异常
    throw new FilePermissionException('access denied');

    //其他异常
    throw new FileException('other exception');
}
try {
    fileHandle();
} catch (FileNotExistException $e) {
    echo $e -> getMessage();
}catch(FilePermissionException $e){
    echo $e -> getMessage();
}catch(FileException $e){
    echo $e -> getMessage();
}

全局异常处理

 getCode()) {
        case FileException::FILE_NOT_EXIST:
            echo($e->getMessage());
            break;
        case FileException::FILE_PERMISSION:
            echo ($e -> getMessage());
            break;
    }
}catch(Exception $e){
    echo 'exception';
}
?>
------------------------------------------
getMessage(),$e->getFile(),$e->getLine());
}

set_exception_handler('defaultExceptionHandle');
throw new Exception('tese......');
?>

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!