PHP系列(七)PHP错误异常处理

1、Php错误报告级别

揭阳网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联公司成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司

1 E_ERROR 致命的运行错误。错误无法恢复,暂停执行脚本。

2 E_WARNING 运行时警告(非致命性错误)。非致命的运行错误,脚本执行不会停止。

4 E_PARSE 编译时解析错误。解析错误只由分析器产生。

8 E_NOTICE 运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。)

error_reporting = E_ALL & ~E_NOTICE

2、自定义php错误报告方式

set_error_handler("myerrorfun");

$mess ="";

function  myerrorfun($error_type,$error_message,$error_file,$error_line){

global $mess;

$mess.="发生错误级别为{$error_type}类型、错误消息{$error_message},在文件夹{$error_file},第{$error_line}行。
";

}

getType($a);

echo"$mess";

显示为:发生错误级别为8类型、错误消息Undefined variable: a,在文件夹C:\AppServ\www\index.php,第9行。

set_error_handler($_type,$_message,$_errfile,$_errline) 函数设置用户自定义的错误处理程序,然后触发错误


3、php记录错误日志

log_errors = on 开启php日志

error_log =syslog  将php日志写到系统上去。

error_log = “c:/lamp/php_error.log”;自已指定一个存放目录、与上面相斥

ini_set(“log_errors”,“on”); 在php开发文件里设置


try{

echo"开始";

run();

}catch(Exception $e){

echo$e->getMessage()."
";

}

//当try{}里面不成功就抛出catch里面的异常


4、自定义异常类

//自定义异常类、必须是系统类Exception的子类

//如果继承Exception类、重写了构造方法、一定要调一下父类中被覆盖的方法/

class  MyBtException extends  Exception{

function__construct($mess){

parent::__construct($mess);

}

functionchangBt(){

echo"换个备胎";

}

}

try{

throw  new  MyBtException("车子胞胎");

echo"路况很好!";

}catch(MyBtException $e){

Echo  $e->getMessage()."
";

$e->changBt()."
";

}

5、自定义多个异常类

//写出对应这个异常解决方法, 就是一下正常类的结构

class MyBtException  extends  Exception{

function__construct($mess) {

parent::__construct($mess);

}

functionchangBt() {

echo"换上备胎!";

}

}

class  WcException  extends  Exception {

functionpro() {

echo"去公厕
";

}

}

class  NoException  extends  Exception {

functionpro() {

echo"买面色凑合一下!
";

}

}

Class  FlException  extends  Exception {

functionpro() {

echo"走小路!
";

}

}

class  Dm  {

function gowc($bj) {

if(!$bj){

throw new WcException("马桶不好用了");

}

echo"哈哈,事儿办的很成功!
";

}


function eat($time) {

if(!$time){

thrownew NoException("起来晚了,早餐没了!");

}

echo"吃的很好!
";

}

function dri($dz) {

if(!$dz){

throw new  MyBtException("爆胎了");

}

echo"车开的不错!
";

}

function run($yu) {

if(!$yu){

throw new  FlException("天下雪了, 高速封路了");

}

echo"高速很好走!
";

}

}

echo "早上起床
";

try{

$dm =new  Dm();

// 1. 上厕所  (马桶不好用了),去公厕

$dm-> gowc(true);

// 2. 吃早餐 (没有早点),买面包

$dm-> eat(true);

//3. 开车上班 (爆tai)         换下

$dm->dri(true);


//4. 上高速  (下雪)  小路

$dm->run(false);

} catch(MyBtException  $e) {   //  Exception $e = newException('');

echo$e->getMessage()."
";

//自定义类中的解决方法调用,解决了问题

$e->changBt()."
";

try {

}catch(Exception$e) {

}

} catch(NoException $e) {

echo$e->getMessage()."
";

$e->pro();

} catch(WcException $e) {

echo$e->getMessage()."
";

$e->pro();

} catch(Exception $e) {

echo$e->getMessage()."
";

//$e->pro();

}

echo"到公司开始工作
";




当前文章:PHP系列(七)PHP错误异常处理
URL分享:http://scyanting.com/article/ihojdc.html