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

   2015-11-09 0
核心提示:php对异常的处理与java一样,用到的是try{}catch(){}
定义顶级异常处理器用到的函数是
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块中并没有抛出异常,而是按照系统默认的错误处理机制进行处理

所以能不能捕获到异常,取决于有没有真正的抛出异常
 
标签: 异常处理
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • delphi 异常处理机制
    一、异常的来源。在Delphi的应用程序中,下列的情况都比较有可能产生异常。(1)文件处理(2)内存分配(3)Windows资源(4)运行时创建对象和窗体(5)硬件和操作系统冲突二、异常的处理。(1)try…except…end;在try体内的代码发生异常时,系统将转向excep
    02-09
  • [R]R语言里的异常处理与错误控制 r语言error
    之前一直只是在写小程序脚本工具,几乎不会对异常和错误进行控制和处理。随着脚本结构和逻辑更复杂,脚本输出结果的准确性验证困难,同时已发布脚本的维护也变得困难。所以也开始考虑引入异常处理和测试工具的事情。不过好像R语言的异常处理似乎有些辣鸡?查
    02-09
  • 使用Typescript重构axios(十)——异常处理:增强版
    使用Typescript重构axios(十)——异常处理:增
    1.使用Typescript重构axios(一)——写在最前面2.使用Typescript重构axios(二)——项目起手,跑通流程3.使用Typescript重构axios(三)——实现基础功能:处理get请求url参数4.使用Typescript重构axios(四)——实现基础功能:处理post请求参数5.使用Typescript重
    02-09
  • ruby 异常处理 begin rescue end
    begin     代码1rescue  代码end如果执行 代码1 发生异常 则转至 代码2若正常,则执行完跳出
    02-09
  • 【Dart学习】-- Dart之异常处理
      概述:    Dart2的异常与Java是非常类似的。Dart2的异常是Exception或者Error(包括它们的子类)的类型,甚至可以是非Exception或者Error类,也可以抛出,但是不建议这么使用。  Exception主要是程序本身可以处理的异常,比如:IOException。我们处
    02-09
  • 被吐嘈的NodeJS的异常处理 node.js报错
    被吐嘈的NodeJS的异常处理 node.js报错
     被吐嘈的NodeJS的异常处理 许多人都有这样一种映像,NodeJS比较快; 但是因为其是单线程,所以它不稳定,有点不安全,不适合处理复杂业务; 它比较适合对并发要求比较高,而且简单的业务场景。 在Express的作者的TJ Holowaychuk的 告别Node.js一文中列举
    02-09
  • Objective-C:设值/取值方法、参数设置、self关键字、继承、动态绑定、NSObject基本方法、异常处理
    Objective-C:设值/取值方法、参数设置、self关
    Objective-C代码的一般组成:@interface部分描述类和类的方法(声明)exp:@interface Fraction: NSObject-(void) print;-(void) setNumerator: (int)n;-(void) setDenominator: (int)d;@end声明方法时,-表示为实例方法,+表示为类方法;如果有返回值则将返回
    02-09
  • 从 C++ 到 Objective-C:异常处理和多线程
    http://www.devbean.info/2011/04/from_cpp_to_objc_17/异常处理比起 C++ 来,Objective-C 中的异常处理更像 Java,这主要是因为 Objective-C 有一个 @finally 关键字。Java 中也有一个类似的 finally 关键字,但 C++ 中则没有。finally 是 try()…catch() 块
    02-09
  • Objective-C try/catch异常处理机制原理。
    Objective-C try/catch异常处理机制原理。
    try-catch-finalyfinally在任何情况下都会执行(不管有没有异常),属于整个体系的附属。基本思想是跳到捕获锚点,重新执行。 http://www.cnblogs.com/markhy/p/3169035.htmlObjective-C使用@try @catch @finally来捕获并处理异常。处理异常需要用到NSExcept
    02-09
  • c/objective-c/win32/mfc/qt 异常处理与总结
    实际异常一:libcpmtd.lib(xmbtowc.obj) : error LNK2001: unresolved external symbol __CrtDbgReportDebug/B机.exe : fatal error LNK1120: 1 unresolved externals处理办法:property pages-Configuration Propertyies-C/C++-Code Generation-Runtime Librar
    02-09
点击排行