php基础学习之错误处理(其一)

一,错误处理的概念

错误处理指的是系统(或者用户)在执行某些代码的时候,发现有错误,就会通过错误处理的形式告知程序员,俗称报错


二,错误分类

  1. 语法错误:书写的代码不符合 PHP 的语法规范,语法错误会导致代码在编译过程中不通过,所以代码不会执行(parse error)
  2. 运行时错误:代码编译通过,但是在执行过程中出现一些条件上的不满足导致的错误(runtime error)
  3. 逻辑错误:书写的代码在逻辑上出现的错误,导致代码正常执行但是得不到想要的结果


三,错误代号(常量)

(一)系统错误

  • E_ERROR:fatal error,致命错误,代码在错误处会中断执行
  • E_WARNING:warning,警告错误,不影响代码执行,但可能得到意想不到的结果
  • E_PARSE:编译错误,代码不会执行
  • E_NOTICE:notice,通知错误,不影响代码执行

(二)php启动错误

  • E_CORE_ERROR: PHP 启动时遇到致命错误。这与 E_ERROR 类似,但是是由 PHP 引擎的核心部分引发的。
  • E_CORE_WARNING: PHP 启动时的非致命警告。这与 E_WARNING 类似,但是由 PHP 引擎的核心部分引发的。

(三)包含代码错误

  • E_COMPILE_ERROR: 编译时致命错误。这些错误由编译器检测到,通常在包含或包含代码时发生。
  • E_COMPILE_WARNING: 编译时的非致命警告。这些警告由编译器检测到,通常在包含或包含代码时发生。

(四)用户错误

  • E_USER_ERROR
  • E_USER_WARNING
  • E_USER_NOTICE

用户在使用自定义错误触发时,会使用到的错误代码(系统用不到)

(五)其它错误

  • E_STRICT: 编码标准警告。这些警告指示代码中的编码标准问题,可能影响代码的兼容性或可维护性。
  • E_RECOVERABLE_ERROR: 可恢复的致命错误。这些错误表示脚本可以捕获并处理,但通常会导致脚本终止。
  • E_DEPRECATED: 代码已经过时的警告。这些警告表示使用了已经被废弃或不推荐使用的功能,可能会在未来的 PHP 版本中被移除。
  • E_USER_DEPRECATED: 用户生成的已弃用警告。这些警告由用户在代码中使用 trigger_error() 函数生成。
  • E_ALL,代表所有错误(通常在进行错误控制的时候使用较多),建议在开发过程中使用

(六)错误代号(常量)的底层原理

所有以E开头的错误代号(常量)其实都是二进制串,对于这一点,下面这段脚本给出了验证

<?php
var_dump(E_ERROR);//1 -> 0001
echo "<-E_ERROR<br>";

var_dump(E_WARNING);//2 -> 0010
echo "<-E_WARNING<br>";

var_dump(E_PARSE);//4 -> 0100
echo "<-E_PARSE<br>";

var_dump(E_NOTICE);//8 -> 1000
echo "<-E_NOTICE<br>";

var_dump(E_CORE_ERROR);//16 -> 0001 0000
echo "<-E_CORE_ERROR<br>";

var_dump(E_CORE_WARNING);//32 -> 0010 0000
echo "<-E_CORE_WARNING<br>";

var_dump(E_COMPILE_ERROR);//64 -> 0100 0000
echo "<-E_COMPILE_ERROR<br>";

var_dump(E_COMPILE_WARNING);//128 -> 1000 0000
echo "<-E_COMPILE_WARNING<br>";

var_dump(E_USER_ERROR);//256 -> 0001 0000 0000
echo "<-E_USER_ERROR<br>";

var_dump(E_USER_WARNING);//512 -> 0010 0000 0000
echo "<-E_USER_WARNING<br>";

var_dump(E_USER_NOTICE);//1024 -> 0100 0000 0000
echo "<-E_USER_NOTICE<br>";

var_dump(E_STRICT);//2048 -> 1000 0000 0000
echo "<-E_STRICT<br>";

var_dump(E_RECOVERABLE_ERROR);//4096 -> 0001 0000 0000 0000
echo "<-E_RECOVERABLE_ERROR<br>";

var_dump(E_DEPRECATED);//8192 -> 0010 0000 0000 0000
echo "<-E_DEPRECATED<br>";

var_dump(E_USER_DEPRECATED);//16384 -> 0100 0000 0000 0000
echo "<-E_USER_DEPRECATED<br>";

var_dump(E_ALL);//32767 -> 0111 1111 1111 1111
echo "<-E_ALL<br>";

如果想进行一些错误的控制,则可以利用这一点来使用位运算进行操作

例如:

E_ALL & ~E_NOTICE:排除E_NOTICE之外的其它错误

E_WARNING | E_NOTICE:只显示E_WARNING和E_NOTICE错误


四,错误触发

(一)程序运行时触发

系统自动根据错误发生后,显示对应的错误信息,主要针对代码的语法错误和运行时错误

例如:进行除法运算时,误使除数为0

(二)人为触发

知道某些逻辑可能会出错,从而使用对应的判断代码来触发响应的错误提示

(*)trigger_error()函数

使用trigger_error()函数来认为触发错误

trigger_error()函数有两个参数,第一个参数接收一个字符串(该字符串将在错误触发时被输出);第二个参数接收一个错误代号(常量)(第二个参数可以不填,如果不填则默认是Notice级别,如果要填,则会填本篇【三.(四)】中描述到的三个用户自定义错误,用于修改错误的级别

  • E_USER_ERROR
  • E_USER_WARNING
  • E_USER_NOTICE

下面是两个代码示例:

  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果您想学习写网站,那么您应该学习 HTML、CSS 和 JavaScript 三种编程语言。 HTML(HyperText Markup Language)是网页的框架语言,它决定了网页的结构和内容。 CSS(Cascading Style Sheets)是网页的表现语言,它决定了网页的样式和布局。 JavaScript 是网页的交互语言,它决定了网页的动态效果和交互方式。 学习这三种语言可以让您建立起自己的网站,并且这三种语言是目前网站开发的基础。如果您想进一步深入学习网站开发,那么还可以学习一些其他的编程语言和框架,比如 PHP、Java、Python 等。 ### 回答2: 作为一个新手小白,想要学习写网站,你应该学习HTML、CSS和JavaScript这三种编程语言。 首先,HTML是网页制作的基础,它用来定义网页的结构和内容。学习HTML将教会你如何创建和组织网页元素,如标题、段落、图像等。 其次,CSS是网页样式设计的语言,它可以控制网页的外观和布局。学习CSS将使你能够选择和改变字体、颜色、边框等网页的外观。 最后,JavaScript是用于网页交互和动态效果的编程语言。学习JavaScript将帮助你为网页添加交互功能,如验证表单、创建动画和响应用户点击等。 以上三种编程语言都是前端开发所必须的基础知识,掌握它们将使你能够制作出漂亮而且有趣的网页。另外,学习使用一些流行的前端框架(如React、Vue.js等)和后端开发语言(如Python、Java等)也是不错的选择,这样你可以更进一步地扩展你的网站开发技能和知识面。 总之,作为一个新手小白,学习HTML、CSS和JavaScript将是你进入网站开发的最佳起点,希望你在学习的过程中能够享受到编程带来的乐趣,并不断提升自己的技能。 ### 回答3: 作为一个新手小白想学习写网站,你应该学习以下编程语言: 1. HTML:这是网页的基础语言,用于定义网页的结构和内容。学习HTML将使你能够理解网页是如何组织和呈现的。 2. CSS:与HTML相配合,CSS用于控制网页的样式和布局。学习CSS可以让你更好地设计和美化网页。 3. JavaScript:这是一种用于为网页添加交互性和动态功能的脚本语言。学习JavaScript可以为你的网站增添一些智能和复杂的功能。 4. PHP:作为一种服务器端脚本语言,PHP可用于处理表单、数据库和动态内容等。学习PHP可以让你构建更复杂的网站和应用程序。 5. Python:作为一种易学且功能强大的编程语言,Python可以用于网站开发、数据处理和自动化任务等。学习Python可以提高你的编程能力,并为你未来的学习和发展打下坚实的基础。 当然,这只是一些常用的编程语言,你可以根据自己的兴趣和需求选择适合你的编程语言。除了编程语言,你还需要学习使用相应的开发工具和框架,如文本编辑器、集成开发环境和版本控制系统等。记住,学习编程需要不断的实践和经验积累,所以不要害怕犯错误,多动手写代码吧!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值