同步操作将从 搜狗开源/workflow 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
任何软件系统里,错误处理都是一个重要而复杂的问题。在我们框架内部,错误处理可以说是无处不在并且极其繁琐的。
而在我们暴露给用户的接口里,我们尽可能地让事情变简单,但用户还是不可避免地需要了解一些错误信息。
我们框架内不使用C++异常,用户编译自己代码的时候,最好也加上-fno-exceptions标志,以减少代码大小。
参考业界通用做法,我们会忽略new操作失败的可能,并且内部也避免用new去分配大块内存。而C语言风格的内存分配则是有查错的。
从之前的实例中我们看到,所有的task,series都是从WFTaskFactory或Workflow这两个工厂类产生的。
这些工厂类,以及我们以后可能遇到的更多的工厂类接口,都是确保成功的。也就是说,一定不会返回NULL。用户无需对返回值做检查。
为了达到这个目的,当URL不合法时,工厂也能正常产生task。并且在任务的callback里再得到错误。
在之前的示例里,我们经常在callback里看到这样的代码:
void callback(WFXxxTask *task)
{
int state = task->get_state();
int error = task->get_error();
...
}
其中,state代表任务的结束状态,在WFTask.h文件中,可以看到所有可能的状态值:
enum
{
WFT_STATE_UNDEFINED = -1,
WFT_STATE_SUCCESS = CS_STATE_SUCCESS,
WFT_STATE_TOREPLY = CS_STATE_TOREPLY, /* for server task only */
WFT_STATE_NOREPLY = CS_STATE_TOREPLY + 1, /* for server task only */
WFT_STATE_SYS_ERROR = CS_STATE_ERROR,
WFT_STATE_SSL_ERROR = 65,
WFT_STATE_DNS_ERROR = 66, /* for client task only */
WFT_STATE_TASK_ERROR = 67,
WFT_STATE_ABORTED = CS_STATE_STOPPED /* main process terminated */
};
除了任务本身的错误处理,各种具体协议的消息接口上,也会有判断错误的需要。一般这些接口都通过返回false来表示错误,并且通过errno传递错误原因。
此外,一些更复杂的用法,可能需要接触到更复杂一点的错误信息。我们在具体的文档里再做介绍。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。