zoukankan      html  css  js  c++  java
  • 用位运算设计复杂的错误报告

    错误处理是程序中的一个很重要的部分。合理的错误报告的的设计,可以让我们的调试变的轻松。

    通过位运算设计错误报告是一种很常见的方法,下面通过PHP 中处理错误报告的方式,阐述错误报告的处理方法。

    1. 定义错误。

    一般,每一个位代表一个错误,那么一个unsiged int 可以定义 32 种错误。这里列举PHP4 中的定义方法:

       

       

       

    0x001

    E_ERROR

    致命的运行时错误(它会阻止脚本的执行)

    0x002

    E_WARNING

    运行时警告(非致命的错误)

    0x004

    E_PARSE

    解析错误

    0x008

    E_NOTICE

    注意(事情可能是或者可能不是一个问题)

    0x100

    E_USER_ERROR

    用户生成的错误消息,由trigger_error()函数生成

    0x200

    E_USER_WARNING

    用户生成的警告,由trigger_error()函数生成

    0x400

    E_USER_NOTICE

    用户生成的注意,由trigger_error()函数生成

    0x800

    E_STRICT

    关于兼容性和互操作性的建议

    0xFFF

    E_ALL

    所有的错误、警告和建议

    前面的错误是每种占用一个位,第5-8位保留, 12位以后的也不管了。关键的地方,要定义一个E_ALL,是所有的位都为1.

    2. 错误函数的书写

    首先要定义一个全局变量:如error_reporting,然后,比如在error 函数里面,加这样一个判断:

    if (error_reporting & E_ERROR) {

        显示错误

    否则就不做任何的处理。

    这个位运算应该很清楚了,只有E_ERROR 所在位为1 的情况下,才会显示错误。

    3. 定义错误类型

    上面基本上已经说了基本的原理,现在我们定义一些类型,指明他 的用法。

    1. error_reporting = 0 关闭所有错误

    2. error_reporting = E_ALL  打开所有错误

    3. error_reporting  = E_ALL  & ~E_STRICT   打开所有错误 但是排除E_STRICT   

    4. error_reporting = E_ERROR | E_PARSE 打开 E_ERROR 或者 E_PARSE

    是不是很灵活呢。

    这种错误报告是位运算的一个经典应用,当然,它不仅仅应用于错误报告,比如,可以用于系统的配置。

  • 相关阅读:
    不要对父母说的十句话
    25句世界上最經典的話
    奥巴马(Obama)获胜演讲全文[中英对照]+高清视频下载
    【心理测试】男人眼中女人哪里最性感?
    一张图看出你是用左脑还是右脑
    我是有原则的~~(笑话转贴)
    各行各业常用大用大谎言
    你知道我今天为啥要来上班吗?
    女性抽烟腰会变粗?
    心理学家揭秘人临死时的感受
  • 原文地址:https://www.cnblogs.com/niniwzw/p/1652165.html
Copyright © 2011-2022 走看看