百度
360搜索
搜狗搜索

php错误码判断处理,php错误处理和异常详细介绍

  一.基础的错误处理

  含义:一条消息会被发送到浏览器,这条消息带有文件名,行号以及一条描述错误的消息。

  基本的错误处理:

if(!file_exists('welcome.txt')) {
die('file not found');

} else {
$file=fopen('welcome.txt', 'r');

}

  如果没有上述的判断,会直接报错,产生warning.

  二.创建自定义错误处理器

  创建一个专用函数,可以在php中发生错误时调用该函数,该函数必须有能力处理至少两个参数(error level和error message),但是最多可以接受5个参数(可选:文件,行号,内容-一个数组,包含了当错误发生时在用的每个变量以及它们的值)

  set_error_handler('函数名'):遇到错误会触发,比如文件不存在,变量未定义等,以及自定义触发的错误(下面叙述)

function customError($error, $errstr) {
echo "Error:[$errno]$errstr";

}

set_error_handler('customError');

echo($test)

//上述代码会输出

Error:[8]Undefined variable:test

  三.触发错误

  trigger_error(errormsg,errortype):函数创建用户级别的错误消息

  参数:errormsg:规定错误消息

  errortype:规定错误类型。E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE(默认

$test = 2;

if ($test>1) {
trigger_error('Value must be 1 or below');

}

//以上代码会输出

Notice:Value must be 1 or below in C:\webfolder\test.php on line 6

)

  四.错误报告级别

  常量

  描述

  E_WARNING

  非致命的run_time错误,不暂停脚本执行

  E_NOTICE

  run_time通知,脚本发现可能有错误发生,但也可能在脚本正常运行时发生

  E_USER_ERROR

  致命的用户生成的错误,这类似于trigger_error()设置的E_ERROR

  E_USER_WARNING

  非致命的用户生成的警告,这类似于trigger_error()设置的E_WARNING

  E_USER_NOTICE

  用户生成的通知,这类似于trigger_error()设置的E_NOTICE

  E_RECOVERABLE_ERROR

  可捕获的致命错误,类似E_ERROR,但可被用户定义的处理程序捕获

  E_ALL

  所有错误和警告,除级别E_STRICT以外

  五.异常

  含义:异常处理用于在指定的错误情况发生时改变脚本的正常流程,这种情况成为异常

  异常触发时,会发生的情况:当前代码状态被保存。代码执行被切换到预定义的异常处理器函数。根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本。

  处理方法:异常的基本使用。创建自定义的异常处理器。多个异常。重新抛出异常。设置顶层异常处理器。

  六.异常的基本处理

function checkNum($number) {
if ($number>1) {
throw new Exception('Value must be 1 or below');

}

return true;

}

try {
checkNum(2);

}catch(Exception $e){
echo 'Message:'.$e->getMessage();

}

//上述代码会获得这样一个错误

Message:Value must be 1 or below;

  七:创建一个自定义的Exception类

  该类必须是exception类的一个扩展,该类继承了exception类的所有属性,您可向其添加自定义的函数

class customException extends Exception{
public function errorTwo() {
//定义错误处理

}

}

//继承了Exception的属性和方法

  八:多个异常

try {
if($num>100) {
throw new Exception1($num);

}

if ($num==100) {
throw new Exception2($num);

}

}

catch(Exception1 $e) {
echo $e->getMessage();

}

catch(Exception2 $e) {
echo $e->getMessage();

}

  九:重新抛出异常

  如果在当前try中异常没有被捕获,则它将在更高层级上查找catch代码

try{
try{
if ($num == 100) {
throw new Exception($num);

}

}catch(Exception $e) {
throw new Exception1($num);

}

} catch(Exception1 $e) {
echo $e->errorMessage();

}

  十:设置顶层异常处理器

set_exception_handler()函数可设置处理所有未捕获异常的用户定义函数

function myException($exception) {
echo "Exception:",$exception->getMessage();

}

set_exception_handler('myException');

throw new Exception('Uncaught Exception occurred');

阅读更多 >>>  php精通要多久,学php要多久(php手机编程软件)

网站数据信息

"php错误码判断处理,php错误处理和异常"浏览人数已经达到35次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:php错误码判断处理,php错误处理和异常的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!