第9章 php的错误、异常处理和调试
9.1 常见错误类型
语法错误:缺少分号,括号不完整等
逻辑错误:
未定义错误:未定义变量或常量,未定义有类或函数
环境错误:
windows下路径分隔符'\',linux下路径分隔符'http://www.likecs.com/'
操作系统错误
php版本错误
PHP配置错误
运行错误:数据库不存在|数据库表不存在|正包含的文件不在include_path中|PHP服务器进程没有权限访问|网络上的主机因某种原因不允许被访问
9.2 错误处理机制
错误级别列表
E_ALL:所有错误和警告
E_COMPILE_ERROR:编译错误
E_COMPILE_WARNING:编译警告
E_CORE_ERROR:内部错误
E_CORE_WARNING:启动时警告
E_ERROR:严重错误,不可恢复
E_NOTICE:运行代码字啊操作一些位置的动作
E_PARSE:编译时解析错误
E_RECOVERABLE_ERROR:被用户自定义的错误处理程序所捕捉
E_SCRICT:版本迁移
E_USER_ERROR:用户定义错误
E_USER_NOTICE:用户定义通告
E_USER_WARNING:用户定义警告
E_WARNING:操作错误
指令:error_reporting=E_ALL
错误处理函数
trigger_error($error_msg[,$error_type]):触发自定义的错误信息函数
自定义错误页面:用header()|include()来进一步实现错误页面跳转|引用
错误日志:
初始化php日志文件:void define_syslog_varialbles(void),使用openlog(),closelog(),syslog()等日志函数时所必需的
打开日志连接:openlog(ident,option,facility)
关闭日志连接:closelog(void)
向日志目标发送消息:syslog(priority,message)
9.3 异常处理
异常处理的步骤
应用程序尝试做一些操作
如果尝试失败,则异常处理特性抛出一个异常
指定的处理器捕获该异常,完成必要的任务
异常处理特性清除在尝试期间占用的资源
PHP基本异常类:exception
内置方法:
getMessage()
getCode()
getFile()
getLine()
getTrace():返回一个包含产生异常代码的回退路径的数组
getTraceAsString():返回一个包含产生异常代码的回退路径的数组并格式化成字符串
__toString():显示一个exception对象,并给出以上所有方法提供的信息,可以重载
try、throw、catch
try:使用的异常函数位于try代码块内,如果没有触发异常,则代码继续执行,否则抛出异常
throw:规定如何触发异常
catch:捕获异常并创建一个包含异常信息的对象
示例:
-----
<?php
function checkNum($num){
if($num>1){
throw new Exception('不能大于1');
}
return true;
}
try{
checkNum(2);
}
catch(Exception $e){
echo 'Message:'.$e->getMessage();
}
?>
-----
创建自定义的exception类
必须是exception类的扩展,继承exception所有属性,并添加自定义函数
多个异常:if else|switch
重新抛出异常:对用户隐藏系统错误,再次抛出友好的消息异常
设置顶层异常处理器:set_exception_handle()-->可设置处理所有未捕获异常的用户自定义函数
异常的规则
需要进行异常处理的代码放在try内
每个try或throw代码块必须至少拥有一个对应的catch代码块
使用多个catch代码块可捕获不同种类的异常
可以在try内的catch代码块中再次抛出异常(re-thrown)
如果抛出异常,必须捕获它
9.4 使用Xdebug进行调试
调试函数echo print_r() var_dump() printf() exit()等函数
Xdebug一款开源的php调试程序
第10章 PHP与html交互
10.1 PHP和web表单
表单基本操作
表单安全性
验证表单输入
过滤表单数据
全局变量设置:register_globals
常用表单数据验证方法
姓名验证:用正则
日期验证:
email验证
密码验证
10.2 通过php上传文件
PHP文件上传资源指令:php.ini文件
file_uploads
upload_tmp_dir
upload_max_filesize
post_max_size
max_input_time
memory_limit
max_execution_time
上传错误信息:$_FILE['name']['error']
《php与mysql权威指南》第二部分 (3)
内容版权声明:除非注明,否则皆为本站原创文章。