错误处理

 

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

在 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 状态,你应该显出错误信息,或者关闭播放器。

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


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

每年国庆节前后是临潼石榴集中成熟上市销售的时期,我老丈人家就在秦岭山脉的骊山脚下,家中有十多亩石榴园,全部是绿色种植,施农家肥,人工套袋。 产出的石榴皮薄籽大,甜美多汁。10月份购买的订单均是现摘现发,保证您吃到新鲜美味的石榴。