仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 770|回复: 8
打印 上一主题 下一主题

[学习教程] PHP网页编程之php毛病处置和php非常处置机制

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:12:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
phpmanual(PHP手册)肯定是要从网上下载一个的,它很权威,也很全面,我自己认为它是一本很好的参考书,但是不适合新手当教材使用。php毛病处置


当我们开辟程序时,偶然候程序呈现了成绩,我们就能够用以下几种举措找堕落误。

开辟阶段:开辟时输入一切的毛病呈报,有益于我们举行程序调试
运转阶段:我们不要让程序输入任何一种毛病呈报(不克不及让用户看到(包含懂手艺,不懂手艺的人))

将毛病呈报写进日记中
1、指定毛病呈报error_reporting=E_LL
2、封闭毛病输入display_errors=Off
3、开启毛病日记功效log_errors=On

1.默许假如不指定毛病日记地位,则默许写WEB服务器的日记中
2.为error_log选项指定一个文件名(可写)
3.写进到操纵体系日记中error_log=syslog
以下代码示例

  1. [/code]
  2. 固然php还供应了函数error_get_last()来取得毛病信息[size=4]函数界说和用法[/size]
  3. error_get_last()函数猎取最初产生的毛病。该函数以数组的情势前往最初产生的毛病。前往的数组包括4个键和值:[type]-毛病范例[message]-毛病动静[file]-产生毛病地点的文件[line]-产生毛病地点的[size=4]小例子:[/size]
  4. [code]输入:Array([type]=>8[message]=>Undefinedvariable:test[file]=>D:www        est.php[line]=>2)
复制代码
以是如许我们也很便利了。。。如许是否是对换试程序和排查毛病的时分很有匡助呢?

这些毛病呈报级别是毛病处置程序旨在处置的毛病的分歧的范例:

值常量形貌2E_WARNING非致命的run-time毛病。不停息剧本实行。8E_NOTICERun-time关照。
剧本发明大概有毛病产生,但也大概在剧本一般运转时产生。
256E_USER_ERROR致命的用户天生的毛病。这类似于程序员利用PHP函数trigger_error()设置的E_ERROR。512E_USER_WARNING非致命的用户天生的告诫。这类似于程序员利用PHP函数trigger_error()设置的E_WARNING。1024E_USER_NOTICE用户天生的关照。这类似于程序员利用PHP函数trigger_error()设置的E_NOTICE。4096E_RECOVERABLE_ERROR可捕捉的致命毛病。类似E_ERROR,但可被用户界说的处置程序捕捉。(拜见set_error_handler())8191E_ALL一切毛病和告诫,除级别E_STRICT之外。
(在PHP6.0,E_STRICT是E_ALL的一部分)

php非常处置机制

界说:


非常处置:不测,是在程序运转过程当中产生的料想这外的事,利用非常改动剧本一般流程

语法格式:
  1. try{//...}catch(Exception$e){//...}
复制代码
PHP中try{}catch{}是非常处置.
将要实行的代码放进TRY块中,假如这些代码实行过程当中某一条语句产生非常,则程序间接跳转到CATCH块中,由$e搜集毛病信息和显现.
PHP中try{}catch{}语句
为了进一步处置非常,我们必要利用PHP中try{}catch{}----包含Try语句和最少一个的catch语句。任何挪用大概抛出非常的办法的代码都应当利用try语句。Catch语句用来处置大概抛出的非常。例子:

我写一段代码:
本人界说一个非常类
感化:就是写一个或多个办法办理当产生这个非常时的处置体例
1.本人界说非常类,必需是Exception(内置类)的子类,能够检察PHP手册内里Exception(内置类)的利用办法
2.Exception类中的只要机关办法和toString()能够重写,别的都final
  1. [/code]
  2. 1.假如try中代码没有成绩,则将try中代码实行完后就到catch后实行
  3. 2.假如try中代码有非常产生,则抛出一个非常工具(利用throw),抛出给了catch中的参数,则在try中代码就不会再持续实行下往间接跳转到catch中往实行,catch中实行完成,再持续向下实行
  4. 注重:提醒产生了甚么非常,这不是次要我们要办事,必要在catch中办理这个非常,假如办理不了,则进来给用户鄙人面代码中,假如我没有这个TMP.TXT文件的话,就会抛出非常了。
  5. 假如有非常,我们挪用OPEN办法就能够办理这个非常了。
  6. [code]
复制代码
上面将代码举行收拾和多个非常处置办法:

[code][/code]
把例子全部敲进去试验,完成一遍以后就会有心得了,因为你会发现为啥我的程序和书上的一模一样就是结果不正确。新手学习的时候必须承认,不容易,因为我也是过来人,你会发现原来有那么多常用的语句,函数都要记。
再现理想 该用户已被删除
沙发
发表于 2015-1-18 22:56:46 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
小女巫 该用户已被删除
板凳
发表于 2015-1-24 09:34:57 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
若相依 该用户已被删除
地板
发表于 2015-1-31 22:50:20 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
莫相离 该用户已被删除
5#
发表于 2015-2-7 01:23:00 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
柔情似水 该用户已被删除
6#
发表于 2015-2-19 08:35:47 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
冷月葬花魂 该用户已被删除
7#
发表于 2015-3-6 14:32:14 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
爱飞 该用户已被删除
8#
发表于 2015-3-13 02:10:10 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
精灵巫婆 该用户已被删除
9#
发表于 2015-3-20 10:21:16 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 16:07

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表