错误处理

 

错误和异常的处理在真正落地、上线的应用中非常重要。

在 fijkplayer 中,我尽量让错误和异常处理变得简答,并且具有统一的原则和规范。

原则

对于 dart 中的 ErrorException 的关系,我比较认同 这一说法

翻译过来就是:

Error 和其子类用于代码错误,如果出现了 Error,说明您的代码出错了,您应该修复您的代码。
Exception 和其子类用于运行时的错误。你可以通过一些方法避免抛出异常,但是还有很多情况下你无法避免异常的出现。

在 fijkplayer 中,也遵循这样的理念,并且严格定制了关于错误和异常的规范。

  • fijkplayer 的 api 会检查参数有效性和内部状态,如果出错立即抛出 Error
  • fijkplayer 中出现的异常情况都以异步的形式出现,并且作为 FijkValue 的字段在值发生变化时通知订阅者。
  • fijkplayer 中的播放器相关 exception 都是 FijkException 或其子类的实例。
  • fijkplayer 中 FijkException 不会被抛出,所以不需要捕获。
  • fijkplayer 中其他抛出的 Exception 会明确在 api 文档中指明。

实际上,FijkException 都是对 ijkplayer 中播放器进入 error 状态原因的一个说明。 如果出现 FijkException,那么 FijkPlayer 肯定也进入了 error 状态。当 FijkPlayer 离开 error 状态时,异常也被清空。

处理响应

正确的使用 fijkplayer 的 api 不会抛出 Error。如果出现 Error,请检查您的代码是否出现逻辑错误。当然,也不能排除 fijkplayer 中出现 bug。
如果出现无法解决的 api 调用抛出 Error 问题,请在 github issues 中进行提问。

在 fijkplayer 中,目前没有引入 FijkException 之外的任何异常。并且 FijkException 是不会抛出的。所以不需要异常处理函数 app 也不会因为 fijkplayer 而导致崩溃。
但是一旦出现 FijkException 意味着播放器处于 error 状态,你应该显出错误信息,或者关闭播放器。

本节完,就是这么简单。😄


您的支持是我的动力。你可以通过以下方式支持我:

  • 给该项目点赞   给该项目点赞
  • 关注我的 Github   关注我的 Github
微信赞赏码 支付宝
微信赞赏码 支付宝二维码