浏览 3504 次
锁定老帖子 主题:断言位置的选择:谁犯错谁异常
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-06-12
比如某gen_server: ... hello(A,B,C) when is_atom(A),is_integer(B),is_binary(C) -> gen_server:cast(?SERVER,{hello, A, B, C}). handle_cast({hello, A, B, C}, State} -> .... {noreply, State}. ...
将断言加在hello/3上显然比加在handle_cast/2上合理。 如果将断言加在handle_cast上,调用发起方出错将造成此server无故重启甚至失效,无法为其他进程提供服务,而作为出错的调用方却不受影响。 将断言加于hello上,调用方将因自己的错误发生异常,从而正确的报告异常或者拥有重启恢复的机会,也不会影响目标服务和其他进程。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |