微擎错误处理 is_error

微擎系统只提供了简单的错误结构概念,允许用户进行业务级的错误处理,并不支持系统级的抛出、捕获异常处理。

微擎系统很多系统函数也是这样返回错误信息的,在使用时,尽量使用 is_error 函数来判断

微擎系统中使用 error($errno, $message = '') 来定义一个错误结构,使用 is_error($data) 函数来判断是否发生错误。

例如:

$file_delete_status = file_remote_delete('test.jpg');
if (is_error($file_delete_status)) {
	message('删除成功');
} else {
	message('删除失败,错误码如下:' . $file_delete_status['errno'] . ',错误如下:' . $file_delete_status['message']);
}

function file_remote_delete($file) {
	global $_W;
	if(empty($file)) {
		return error(1, '文件不存在');
	}
	$ftp = new Ftp();
	if ($ftp->delete_file($file)) {
		return true;
	} else {
		return error(1, '删除附件失败,请检查配置并重新删除');
	}
}

error() 和 is_error() 方法来源于如下文件

/framework/function/global.func.php

源码如下

function error($errno, $message = '') {
	return array(
		'errno' => $errno,
		'message' => $message,
	);
}


function is_error($data) {
	if (empty($data) || !is_array($data) || !array_key_exists('errno', $data) || (array_key_exists('errno', $data) && 0 == $data['errno'])) {
		return false;
	} else {
		return true;
	}
}