博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP错误和异常处理
阅读量:5019 次
发布时间:2019-06-12

本文共 1777 字,大约阅读时间需要 5 分钟。

一、PHP错误处理的三种方式

1.die()语句,等价于exit()

file_exists('test.txt') or die('文件不存在');

2.自定义错误和错误触发器

a)错误触发器

trigger_error():产生一个用户级别的error/warning/notice信息

<?php

$age = 80;
if($age!=120){
trigger_error("年龄错误");
}
?>

b)自定义错误

创建自定义错误函数(处理器),该函数必须有能力处理至少两个参数(error_level和errormessage),但是可以接受最多五个参数(error_file、error_line、error_context)

set_error-handle('自定义错误处理函数',自定义错误处理级别)

1 

c)错误日志

默认的根据php.ini中error_log配置,php向服务器的错误记录系统或文件发送错误记录。

error_log():发送错误信息到某个地方

1 

二、PHP异常处理

1.基本语法

try{
    //可能出现错误或异常的代码
    //catch 捕获  Exception是php已定义好的异常类
} catch(Exception $e){
    //对异常处理,方法:
    //1、自己处理
    //2、不处理,将其再次抛出
}
2.处理程序包括:
  1. Try - 使用异常的函数应该位于 "try"  代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
  2. Throw - 这里规定如何触发异常。每一个 "throw" 必须对应至少一个 "catch"
  3. Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象 

a)简单示例

1 
1){ 4 throw new Exception("Value must be 1 or below"); 5 } 6 return true; 7 } 8 try{ 9 checkNum(2);10 echo "If you see this, the number is 1 or below";11 }catch(Exception $e){12 echo "Message:".$e->getMessage();13 }14 ?>

程序将会输出:

b)设置顶级异常处理器

1 
getMessage().'
';13 throw new Exception('errorinfo');14 }15 ?>

程序输出:

1 must greater than 10

this is top exception

b)创建一个自定义的异常类

1 
getLine().'in'.$this->getFile().':'.$this->getMessage().' is not a valid E-mail address'; 5 return $errorMsg; 6 } 7 } 8 try{ 9 throw new customerException('error Message');10 }catch(customerException $e){11 echo $e->errorMessage();12 }13 ?>

c)使用多个catch来返回不同情况下的错误信息

1 
0){ 5 throw new customerException('>0'); 6 } 7 if($i<-10){ 8 throw new Exception('<-10'); 9 }10 }catch(Exception $e){11 echo $e->getMessage();12 }catch(customerException $e){13 echo $e->errorMessage();14 }15 ?>

 

 

转载于:https://www.cnblogs.com/hell0x/p/5611208.html

你可能感兴趣的文章
flex利用webservice上传照片
查看>>
IOS开发之Bug--使用KVC的易错情况
查看>>
python list和tuple
查看>>
基础薄弱的反思
查看>>
ORACLE增删改查以及case when的基本用法
查看>>
[转]oracle10客户端PL/SQL Developer如何连接远程服务器上的oracle数据库
查看>>
HTML5 表单元素和属性
查看>>
SDUTOJ 2498 数据结构实验之图论十一:AOE网上的关键路径
查看>>
使用SpringSocial开发QQ登录
查看>>
好玩的游戏
查看>>
2.6. Statistical Models, Supervised Learning and Function Approximation
查看>>
代码说明call和apply方法的区别 (咱们这方面讲解的少,这样的题有变式,需要举例讲解一下)...
查看>>
T-SQL 类型转换
查看>>
在eclipse中设计BPMN 2.0工作流定义的根本步骤
查看>>
Json对象与Json字符串互转(4种转换方式)
查看>>
PAT甲级1002 链表实现方法
查看>>
查看Linux信息
查看>>
Python中sys模块sys.argv取值并判断
查看>>
【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)
查看>>
并查集
查看>>