如何集中处理一个模块的出错行为呢?我的想法是创建一个错误处理类对象。
#ifndef __ERROR_H__
#define __ERROR_H__
#define ELEVEL_DEBUG 0
#define ELEVEL_INFO 1
#define ELEVEL_WARNING 2
#define ELEVEL_ERROR 3
#define ELEVEL_FATAL 4
namespace LinWin
{
class CError
{
public:
virtual int OnError(int level) = 0;
virtual int OnError(int code, int level) = 0;
};
}
#endif
我把出错分为两种情况:第一种是返回的自定义的错误码;第二种是可以通过GetLastError()或者errno来获取错误码。因此,在这个抽象出错类中,我给出了两个接口。
既然出错的行为集中在一起处理,那么,退出的时机是否也可以集中在一块儿处理呢?可以试试:
#ifndef __EXIT_H__
#define __EXIT_H__
namespace LinWin
{
class CExit
{
public:
virtual bool OnExit() = 0;
virtual void SetExit() = 0;
};
}
#endif
退出类的两个接口:第一个是否退出;第二个是设置退出状态为真(初始状态为假)。
这样两个简单的类,实现的功能肯定是有限制的。毕竟是一种尝试,就先这样,以后再慢慢完善吧!