abbshr / Git-Contacts

A Contacts Backend base on Git
1 stars 0 forks source link

规范化模块接口 & 简化业务逻辑 #10

Closed abbshr closed 9 years ago

abbshr commented 9 years ago
abbshr commented 9 years ago

@AustinChou

https://github.com/AustinChou/Git-Contacts/commit/031751251ebec6b7686535eea18bf50f1710b9d0 https://github.com/AustinChou/Git-Contacts/commit/116627ac1727f8cda6df78111904f6757525a32e

我把错误处理逻辑放到到路由组件里了, GitContacts类中发生异常时会给@@errno赋值, 可通过GitContacts::errsym方法获取.

@@errno属于Symbol类型, 目前这些值可用:

:ok # 操作成功返回
:pend # 操作被接受, 但等待审核中尚未完成
:forbidden # 操作被禁止, 由于权限问题无法访问目标资源/不存在而导致
:non_exist # 操作失败, 由于必需的目标不存在
:exist # 操作失败, 由于目标已存在
:bad_args # 操作失败, 由于传递参数无法识别导致
:miss_args # 操作失败, 由于缺少必需的参数

因此路由组件中可以这样处理错误:

ret = GitContacts::do_some_opt_need_return
case GitContacts::errsym
when :ok then # handle ret
when :forbidden then # ...
....
end