我们不使用 C++ 异常.
——Google 开源项目风格指南

出于以下原因,DuiMini将禁用C++异常:

  • 效率和库体积控制
  • 便于和其他禁用异常的项目兼容
  • 本人不喜欢C++的异常处理

因此我设计了一个UIException用于处理异常并在必要时终止程序,而所有的异常处理都放置在Manager层中(关于模块化设计),接口统一返回错误码进行判断。
因此:

  • 调用最低级的Manager层总是安全的(除非特殊说明,一般处于该层的异常均为致命异常,会直接终止程序)
  • 调用由Manager组成的更高一级的Manager层一般也是安全的,因此无需处处考虑返回异常(许多函数都保证执行成功)