三 基类 调试类 错误类

错误

<?php
//
// +----------------------------------------------------------------------+
// | WHXBB          基类                                                  |
// +----------------------------------------------------------------------+
// | Copyright (c) 2001 NetFish Software                                  |
// |                                                                      |
// | Author: whxbb(whxbb@21cn.com)                                        |
// +----------------------------------------------------------------------+
//
// $Id: whxbb.class.php,v 0.1 2001/8/4 12:53:33 yf Exp $
//
// 禁止直接访问该页面
if (basename($HTTP_SERVER_VARS['PHP_SELF']) == "whxbb.class.php") {
    header("HTTP/1.0 404 Not Found");
}

// 调试标志,为1时,系统运行在调试状态
define('WHXBB_DEBUG_FLAG', 0);

// 出错代码的预定义
// 忽略错误
define('WHXBB_ERROR_IGNORE', 1);
// 在页面显示错误
define('WHXBB_ERROR_ECHO'  , 2);
// 弹出错误警告并显示错误
define('WHXBB_ERROR_ALERT' , 4);
// 停止程序的运行
define('WHXBB_ERROR_DIE'   , 8);
// 返回上页
define('WHXBB_ERROR_RETURN', 16);
// 跳到指定页
define('WHXBB_ERROR_GOTO', 32);

/**
* Purpose
*  基类, 在该类中封装了一些常用的方法
*
* @author  : whxbb(whxbb@21cn.com)
* @version : 0.1
* @date    :  2001/12/4
*/
class WHXBB
{
    /**
     * 调试标志
     * @access protected
     */
    var $_debug;
    /**
     * 数据库连接标志
     * @access protect
     */
    var $_conn;

    function WHXBB()
    {
  // 数据库连接标志
        global $_conn;
        if (!is_resource($conn))
            die("数据库连接错误");
        $this->_conn = $conn;
        $this->_debug = WHXBB_DEBUG_FLAG;
    }

    /**
     * 处理字符串
     * @param $str 要处理的字符串
     * @param $act in 将'替换成\’out 把\’替换成'
  * @access public
     */
    function OperateString(&$str, $act)
    {
        if($act == 'in')
            $str = str_replace("'", "\\’", $str);
        if($act == 'out')
            $str = str_replace("\\’", "'", $str);
    }
    /**
     * 判断一个变量是否为错误对象
     *
     * @param   $data   要判断的变量
     * @access  public
     * @return  bool    是 true 不是 false
     */
    function isError($data) {
        return (bool)(is_object($data) &&
                      (get_class($data) == "whxbb_error" ||
                       is_subclass_of($data, "whxbb_error")));
    }
    /**
     * 判断一个变量是否为分页对象
     *
     * @param   $data   the value to test
     * @access  public
     * @return  bool    true if $data is an Pager
     */
    function isPager($data) {
        return (bool)(is_object($data) &&
                      (get_class($data) == "pager" ||
                       is_subclass_of($data, "pager")));
    }
}

/**
* 调试类
*
* Purpose
*
* 程序调试用
*
* @author  : wxhbb(whxbb@21cn.com)
* @version : 0.1
* @date    :  2001/8/4
*/
class WHXBB_Debug Extends WHXBB
{
    function WHXBB_Debug($msg)
    {
        $this->WHXBB();
        if($this->_debug == 1)
        {
            echo "\n<br>WHXBB Debug >>> $msg<br>\n";
        }    
    }
}
/**
* Purpose
* 错误处理(触发错误,显示错误)
*
* @author  : whxbb(whxbb@21cn.com)
* @version : 0.1
* @date    :  2001/8/4
*/
class WHXBB_Error extends WHXBB
{
    /**
     * 错误信息
     * @access protected
     */
    var $_errNo;
    /**
     * 错误代码
     * @access protected
     */
    var $_errMsg;
    /** 报错方式 参见"出错代码的预定义" */
    var $_reportMethod;

    /**
     * 构造一个错误对象
     * @param $errMsg   错误信息, 错误的字符描述
     * @param $errNo    错误代码, 错误的代码
     * @param $reportMethod 报错方式,参见"出错代码的预定义"
     * @param $param1 参数一,如跳转到指定页面时页面的url
     * @param $param2 参数二 保留
     * @access public
     */
    function WHXBB_Error($errMsg, $errNo, $reportMethod = WHXBB_ERROR_IGNORE, $param1 = '', $param2 = '')
    {
        $this->WHXBB();
        $this->_errMsg = $errMsg;
        $this->_errNo = $errNo;
        $this->_reportMethod = $reportMethod;
        switch($reportMethod)
        {
            case WHXBB_ERROR_IGNORE:
                break;
            case WHXBB_ERROR_ECHO:
                echo $errMsg;
                break;
            case WHXBB_ERROR_ALERT:
                JS::Alert($errMsg);
                break;
            case WHXBB_ERROR_DIE:
                $this->Close();
                exit;
                break;
            case WHXBB_ERROR_DIE + WHXBB_ERROR_ALERT:
                JS::Alert($errMsg);
                $this->Close();
                exit;
                break;
            case WHXBB_ERROR_DIE + WHXBB_ERROR_ECHO:
                echo $errMsg;
                $this->Close();
                exit;
                break;
            case WHXBB_ERROR_ALERT + WHXBB_ERROR_RETURN:
                JS::ALert($errMsg);
                JS::Back();
                break;
            case WHXBB_ERROR_RETURN:
                JS::Back();
                break;
            case WHXBB_ERROR_GOTO:
                JS::Goto($param1);
                break;
            case WHXBB_ERROR_GOTO + WHXBB_ERROR_ALERT:
                JS::ALert($errMsg);
                JS::Goto($param1);
                break;
        }
        new WHXBB_Debug($errNo.":".$errMsg);
    }
    /**
     * 得到错误对象的错误信息
     */
    function GetMsg()
    {
        return $this->_errMsg;
    }
    /**
     * 得到错误对象的错误代买
     */
    function GetNo()
    {
        return $this->_errNo;
    }
}
?>

时间: 2024-10-28 15:57:55

三 基类 调试类 错误类的相关文章

PHP性能优化工具篇Benchmark类调试执行时间_php实例

这是PHP性能优化系列第二期,如何使用PEAR工具类Benchmark逐行获取代码或函数的执行时间. 工欲善其事,必先利其器! 如何安装PEAR和Benchmark 请参考PHP性能优化系列第一期 [PHP性能优化准备篇图解PEAR安装] Benchmark工具类包说明 直接下载:http://pear.php.net/package/Benchmark/downloadBenchmark工具类包共有三个文件,分别是Timer.php.Iterate.php和Profiler.php,三个工具类

java异常和错误类总结(必看篇)_java

java异常和错误类总结 最近由于考试和以前的面试经常会遇到java当中异常类的继承层次的问题,弄得非常头大,因为java的异常实在是有点多,很难记下来,今天正好查了一些资料整理下来,希望对自己和大家有点帮助.最开始的时候习惯用笔记本(手写的纸质的本子)记笔记,后来发现查阅的时候不是很方便,而且速度比较慢.后来改用notepad开始记,感觉效果挺棒,简单易用,没有花哨的东西.但是也有它的缺点,比如版式的整理,不能加入一些图片(往往图片特别是一些大纲是非常好的记忆学习方法)等等,于是尝试用mark

database-在数据获取查询时在数据库类中的错误

问题描述 在数据获取查询时在数据库类中的错误 我想通过 rowId 和 subjectId 从表格中获取数据,但是获取错误: The method query(boolean, String, String[], String, String[], String, String, String, String) in the type SQLiteDatabase is not applicable for the arguments (boolean, String, String[], St

C#基类应用--字符串处理类

字符串   首先介绍一下常用的几个功能: Compare(str1,str2)--比较两个字符串 str1,str2的大小,如果大于返回正数,等于返回0,小于返回负数! IndexOf--定位字符串中第一次出现某个给定字符串的位置PadLeft和PadRight--在字符串的开始和结尾用指定的字符填充字符串ToLower和ToUpper把字符串转换为小写或大写形式Trim--删除首尾空白String.Replace--用指定的字符替换字符串中的指定字符. C#中字符串的建立过程:例如定义变量 s

聚合类和字面值常量类

聚合类 聚合类使得用户可以直接访问其成员,并且具有特殊的初始化语法形式.当一个类满足如下条件时,我们说它是聚合的: 所有成员都是public的 没有定义任何构造函数 没有类内初始化 没有基类,也没用virtual函数. 下面的类都是一个聚合类 struct Data  { int ival; string s; }; 我们可以提供一个花括号括起来的成员初始化列表,并用它初始化聚合类的数据成员: //val1.ival=0;val1.s=string("Anna") Data val1=

看实例学VFP:使用类设计器创建类

VFP中系统定义的类称为基类,用户不能对其修改,但可以根据基类直接创建对象进而实现类的实例化,比如我们常用的"表单控件工具栏"上的类都是系统基类.VFP的基类分容器类(Container)和控件类(Control)两种.简单地说,容器类就是可以包含其他对象的类,比如表单.容器等:而控件类就是不能再容纳其他对象的类,比如文本框.命令按钮等. VFP的容器类包括:表单集(FormSet).表单(Form).容器(Container).页框(PageFrame).页面(Page).表格(Gr

c++-C++可以在类中定义一个类吗?

问题描述 C++可以在类中定义一个类吗? 比如像下面这样: 解决方案 完全可以注意:内部类可以访问外部类的私有成员,外部类不能访问内部类的私有成员! 解决方案二: 可以呀,就像在结构体里申明结构体一样,不过好像通常不这样用. 解决方案三: 嵌套类的概念,相当于一个内部类. 解决方案四: 可以的,不过看起来比较别扭 解决方案五: 可以,嵌套类有以下性质: 一.**可见性**嵌套类对于外围类: 嵌套类仅仅是声明在外围类内部的类型,而不是外围类的成员 外围类不具备嵌套类所定义的成员 对于外围类来说,嵌

JAVA的可变类与不可变类

1.可变类和不可变类(Mutable and Immutable Objects)的初步定义: 可变类:当你获得这个类的一个实例引用时,你可以改变这个实例的内容. 不可变类:当你获得这个类的一个实例引用时,你不可以改变这个实例的内容.不可变类的实例一但创建,其内在成员变量的值就不能被修改. 2.如何创建一个自己的不可变类: .所有成员都是private .不提供对成员的改变方法,例如:setXXXX .确保所有的方法不会被重载.手段有两种:使用final Class(强不可变类),或者将所有类方

thrift的TTransport层的缓存传输类TBufferedTransport和缓冲基类TBufferBase

本节主要介绍缓冲相关的传输类,缓存的作用就是为了提高读写的效率.Thrift在实现缓存传输的 时候首先建立一个缓存的基类,然后需要实现缓存功能的类都可以直接从这个基类继承.下面就详细分 析这个基类以及一个具体的实现类. 缓存基类TBufferBase 缓存基类就是让传输类所有的读写函 数都提供缓存来提高性能.它在通常情况下采用memcpy来设计和实现快路径的读写访问操作,这些操作 函数通常都是小.非虚拟和内联函数.TBufferBase是一个抽象的基类,子类必须实现慢路径的读写函 数等操作,慢路

java可变类和不可变类区别中,对于不可变类克隆的问题

问题描述 java可变类和不可变类区别中,对于不可变类克隆的问题 import java.util.Date; public final class BrokenPerson { private String firstName; private String lastName; private Date dob; public BrokenPerson( String firstName, public BetterPerson( String firstName, String lastNa