We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
现阶段在 chimee 中对错误处理和日志输出的控制并不一致。
在 chimee 代码中运行时的错误会统一通过 chimee.__throwError 抛出。
chimee.__throwError
若果用户配置了 errorHandler,则错误将会交由 errorHandler 作处理。
errorHandler
若用户设置 slient为true,则不会抛出错误。
slient
true
否则,抛出错误。
而当初为了实现
用户可以对不同实例作不同错误处理
该配置设计为静态配置和每个实例的单独配置。
如果用户在实例上有单独配置,则执行实例配置,否则使用全局配置。
日志输出采用 chimee-helper-log,该配置为一全局配置。一旦设置,所有实例均采用同样的配置。
chimee-helper-log
在此种情况下,错误处理和日志输出不一致,容易产生误解。一般而言,会将错误输出和日志输出尽可能的统一。
如当我设置 silent时,不希望有任何的错误和日志输出。
silent
当我针对某个实例进行 debug 时,我希望仅输出该实例的错误和日志。
优
满足所有需求
劣
此改动将会有较多的代码需要更改,并且需要下层尽量将错误或者日志上交分发层。
将所有配置都收归全局,视作默认配置不应该按照实例配置。
而错误处理函数因为自定义程度较高,可以容许用户使用。
改动较少,策略中庸。
逻辑上稍显奇怪
维护轻松
不能满足所谓“多实例”的需求
The text was updated successfully, but these errors were encountered:
错误处理 在 chimee 代码中运行时的错误会统一通过 chimee.__throwError 抛出。 若果用户配置了 errorHandler,则错误将会交由 errorHandler 作处理。 若用户设置 slient为true,则不会抛出错误。 否则,抛出错误。 目前的错误处理机制,对chimee底层逻辑开发的要求会更严格。
对于日后的维护,异常类型细分并具体到实例上,会更加可控+偏向“一劳永逸”;用户确实需要感知到时哪个实例、出现了什么问题,才能更快的定位解决。
如果底层的实现中能遵从这个设计最好,否则这个设计本身可能会形同虚设。
Sorry, something went wrong.
@huzunjie 现在 kernel 层的运行时错误会通过 error 事件抛出。 dispatcher 已自动监听相应错误。现在对于错误开发的问题不大~
error
现在主要问题是 log 是否也需要走相应机制。
我觉得log一般是为开发人员调试使用的,没有哪个开发会开10个实例来看log日志吧。 error能为业务方进行打点、错误处理等使用,比如在直播 error时候 需要reload 当前实例的资源,所以error有强需求绑定在实例上。
@songguangyu 如果这么考虑的话。那我会偏向于采取第二种方案,就是只有 errorHandler 是单绑在实例上。其他都是一种全局配置。
No branches or pull requests
现阶段在 chimee 中对错误处理和日志输出的控制并不一致。
错误处理
在 chimee 代码中运行时的错误会统一通过
chimee.__throwError
抛出。若果用户配置了
errorHandler
,则错误将会交由errorHandler
作处理。若用户设置
slient
为true
,则不会抛出错误。否则,抛出错误。
而当初为了实现
该配置设计为静态配置和每个实例的单独配置。
如果用户在实例上有单独配置,则执行实例配置,否则使用全局配置。
日志输出
日志输出采用
chimee-helper-log
,该配置为一全局配置。一旦设置,所有实例均采用同样的配置。问题
在此种情况下,错误处理和日志输出不一致,容易产生误解。一般而言,会将错误输出和日志输出尽可能的统一。
如当我设置
silent
时,不希望有任何的错误和日志输出。当我针对某个实例进行 debug 时,我希望仅输出该实例的错误和日志。
解决方案
1. 将日志输出业绑定到单个实例上
优
满足所有需求
劣
此改动将会有较多的代码需要更改,并且需要下层尽量将错误或者日志上交分发层。
2. 日志和错误配置均采用全局制,错误处理函数允许单个实例配置
将所有配置都收归全局,视作默认配置不应该按照实例配置。
而错误处理函数因为自定义程度较高,可以容许用户使用。
优
改动较少,策略中庸。
劣
逻辑上稍显奇怪
3. 所有错误处理和日志输出均全局统一配置
优
维护轻松
劣
不能满足所谓“多实例”的需求
讨论要点
The text was updated successfully, but these errors were encountered: