yw6866 发表于 2018-12-22 12:15:23

调试

一 , 使用PHP内置的异常处理类

参考php手册:

try catch throw Exception抛出异常



php异常处理程序应当包括:

Throw - 定义异常:在程序需要的位置定义触发异常满足的条件; catch(Exception
$e) { $e->getMessage() })中会捕获异常,并创建一个包含异常信息的对象($e)

说明:每一个try至少要有一个与之对应的catch。使用多个catch 可以捕获不同的类所产生的异常。

当try
代码块不再抛出异常或者找不到 catch能匹配所抛出的异常时,PHP 代码就会在跳转到最后一个 catch的后面继续执行。当然,PHP 允许在catch代码块内再次抛出(throw)异常。当一个异常被抛出时,其后(译者注:指抛出异常时所在的代码块)的代码将不会继续执行,而
PHP 就会尝试查找第一个能与之匹配的catch。如果一个异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么 PHP 将会产生一个严重的错误,并且输出Uncaught Exception ... (未捕获异常)的提示信息。(???)





Example #1 抛出一个异常

< ![CDATA[




以上例程会输出:



0.2 //第一次合法执行输出结果
Caught exception: Division by zero. //第二次捕获到异常
Hello World//因为异常被处理,所以后面程序继续执行







Example #2 嵌套的异常








以上例程会输出:



string(4) "foo!"





define('      fclose($fp);

2)php函数:error_log()

boolerror_log (string$message
[,int$message_type = 0 [,string$destination
[,string$extra_headers ]]] )

error_log() 函数向服务器错误记录、文件或远程目标发送一个错误。



参数

描述



error

必需。要记录的错误消息。



type

可选。规定错误记录的类型。

可能的记录类型:


[*]0 - 默认。根据在 php.ini 文件中的 error_log 配置,错误被发送到服务器日志系统或文件。
[*]1 - 错误被发送到 destination 参数中的地址。只有该类型使用 headers 参数。
[*]2 - 通过 PHP debugging 连接来发送错误。该选项只在 PHP 3 中可用。
[*]3 - 错误发送到文件目标字符串。





destination

可选。规定向何处发送错误消息。该参数的值依赖于 "type" 参数的值。



headers

可选。只在 "type" 为 1 时使用。

规定附加的头部,比如 From, Cc 以及 Bcc。由 CRLF (\r\n) 分隔。

注释:在发送电子邮件时,必须包含 From 头部。可以在 php.ini 文件中或者通过此参数设置。







var_dump($this->user);




fclose($fp);






四 ,断点调试


die()是exit()的别名;输出一个消息并且退出当前脚本。

例:exit('Line:'.__LINE__) 来截断程序,同时可以输出定位行数。

void exit( $status);

注意:参数为string时,在退出之前该函数会打印$status; 如果status 是一个integer,该值会作为退出状态码,并且不会被打印输出。
页: [1]
查看完整版本: 调试