php异常处理技术,顶级异常处理器

yipeiwu_com6年前PHP代码库
定义顶级异常处理器用到的函数是
set_exception_handler("My_exception");
这里的My_expection是开发者自定义的异常处理函数,既顶级异常处理器,只有当程序中没有函数来处理异常才有顶级异常处理器来处理异常,如果没有定义顶级异常处理器,则由系统默认的异常处理器来处理异常

举例说明:
复制代码 代码如下:

<meta http-equiv="content-type" content="text/html;charset=utf-8" /><?php
set_exception_handler("My_expection");
function My_expection(){
echo "这里是顶级异常处理器";
}
try{
nohello("hello");
}catch(Exception $e){
throw $e;
}
  function nohello($nohello){
   if($nohello == "hello"){
   throw new Exception("不能输入hello");
   }else{
echo "输入成功";
}
}
?>

关于PHP异常处理 的一个问题
复制代码 代码如下:

<?php
try {
$a=10/0;
}catch (Exception $e){
echo "抛出异常";
}
?>

以上代码,并不会输出“抛出异常”,而是输出了错误信息:Warning: Division by zero in......

说明:try块中并没有抛出异常,而是按照系统默认的错误处理机制进行处理

所以能不能捕获到异常,取决于有没有真正的抛出异常

相关文章

WordPress中创建用户角色的相关PHP函数使用详解

WordPress中创建用户角色的相关PHP函数使用详解

WordPress 默认有 “订阅者”、“投稿者”、“作者”、“编辑” 和 “管理员” 五个用户角色,权限由低到高,但默认的五个角色可能不够我们用,这时可以使用 add_role() 函...

phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法

解决办法有两种:(建议用第二种) 1、配置phpmyadmin下的config.inc.php  将cookie改为http复制代码 代码如下:vi /usr/share/ph...

php echo, print, print_r, sprintf, var_dump, var_expor的使用区别

/*******echo********/echo— 输出一个或多个字符串描述echo ( string arg1 [, string ...] )echo()实际上不是一个函数(它是一...

PHP7 新特性详细介绍

PHP 的学习新特性 最近做的项目使用了 php7,但感觉有很多新特性没有用起来。就想总结一下,一些可能会用到的新特性。之前使用的环境是 php5.4,所有也会有 php5.5 和 ph...

PHP 得到根目录的 __FILE__ 常量

1。PHP 的 __FILE__ 常量(如何得到根目录) dirname(__FILE___) 函数返回的是脚本所在在的路径。 比如文件 ...