PHP系列(七)PHP错误异常处理-创新互联
1、Php错误报告级别
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的台山网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!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"到公司开始工作
";
微信扫一扫 、关注公众号
不定时分享资料视频
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前题目:PHP系列(七)PHP错误异常处理-创新互联
地址分享:http://myzitong.com/article/ddjjdo.html