高密住房和城乡建设部网站,网站服务器结构图,郑州资讯,平面设计师个人网站一#xff0c;错误处理的概念 错误处理指的是系统(或者用户)在执行某些代码的时候#xff0c;发现有错误#xff0c;就会通过错误处理的形式告知程序员#xff0c;俗称报错 二#xff0c;错误分类 语法错误#xff1a;书写的代码不符合 PHP 的语法规范#xff0c;语法错… 一错误处理的概念 错误处理指的是系统(或者用户)在执行某些代码的时候发现有错误就会通过错误处理的形式告知程序员俗称报错 二错误分类 语法错误书写的代码不符合 PHP 的语法规范语法错误会导致代码在编译过程中不通过所以代码不会执行(parse error)运行时错误代码编译通过但是在执行过程中出现一些条件上的不满足导致的错误runtime error逻辑错误书写的代码在逻辑上出现的错误导致代码正常执行但是得不到想要的结果 三错误代号常量 一系统错误 E_ERRORfatal error致命错误代码在错误处会中断执行E_WARNINGwarning警告错误不影响代码执行但可能得到意想不到的结果E_PARSE编译错误代码不会执行E_NOTICEnotice通知错误不影响代码执行 二php启动错误 E_CORE_ERROR: PHP 启动时遇到致命错误。这与 E_ERROR 类似但是是由 PHP 引擎的核心部分引发的。E_CORE_WARNING: PHP 启动时的非致命警告。这与 E_WARNING 类似但是由 PHP 引擎的核心部分引发的。 三包含代码错误 E_COMPILE_ERROR: 编译时致命错误。这些错误由编译器检测到通常在包含或包含代码时发生。E_COMPILE_WARNING: 编译时的非致命警告。这些警告由编译器检测到通常在包含或包含代码时发生。 四用户错误 E_USER_ERRORE_USER_WARNINGE_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_ERRORbr;var_dump(E_WARNING);//2 - 0010
echo -E_WARNINGbr;var_dump(E_PARSE);//4 - 0100
echo -E_PARSEbr;var_dump(E_NOTICE);//8 - 1000
echo -E_NOTICEbr;var_dump(E_CORE_ERROR);//16 - 0001 0000
echo -E_CORE_ERRORbr;var_dump(E_CORE_WARNING);//32 - 0010 0000
echo -E_CORE_WARNINGbr;var_dump(E_COMPILE_ERROR);//64 - 0100 0000
echo -E_COMPILE_ERRORbr;var_dump(E_COMPILE_WARNING);//128 - 1000 0000
echo -E_COMPILE_WARNINGbr;var_dump(E_USER_ERROR);//256 - 0001 0000 0000
echo -E_USER_ERRORbr;var_dump(E_USER_WARNING);//512 - 0010 0000 0000
echo -E_USER_WARNINGbr;var_dump(E_USER_NOTICE);//1024 - 0100 0000 0000
echo -E_USER_NOTICEbr;var_dump(E_STRICT);//2048 - 1000 0000 0000
echo -E_STRICTbr;var_dump(E_RECOVERABLE_ERROR);//4096 - 0001 0000 0000 0000
echo -E_RECOVERABLE_ERRORbr;var_dump(E_DEPRECATED);//8192 - 0010 0000 0000 0000
echo -E_DEPRECATEDbr;var_dump(E_USER_DEPRECATED);//16384 - 0100 0000 0000 0000
echo -E_USER_DEPRECATEDbr;var_dump(E_ALL);//32767 - 0111 1111 1111 1111
echo -E_ALLbr; 如果想进行一些错误的控制则可以利用这一点来使用位运算进行操作 例如 E_ALL ~E_NOTICE排除E_NOTICE之外的其它错误 E_WARNING | E_NOTICE只显示E_WARNING和E_NOTICE错误 四错误触发 一程序运行时触发 系统自动根据错误发生后显示对应的错误信息主要针对代码的语法错误和运行时错误 例如进行除法运算时误使除数为0 二人为触发 知道某些逻辑可能会出错从而使用对应的判断代码来触发响应的错误提示 *trigger_error()函数 使用trigger_error()函数来认为触发错误 trigger_error()函数有两个参数第一个参数接收一个字符串该字符串将在错误触发时被输出第二个参数接收一个错误代号常量第二个参数可以不填如果不填则默认是Notice级别如果要填则会填本篇【三.(四)】中描述到的三个用户自定义错误用于修改错误的级别 E_USER_ERRORE_USER_WARNINGE_USER_NOTICE 下面是两个代码示例