当前位置:  开发笔记 > 编程语言 > 正文

异常与断言?

如何解决《异常与断言?》经验,为你挑选了2个好方法。

我的经验法则:

异常用于运行时错误条件(IO错误,内存不足,无法获取数据库连接等).

断言用于编码错误(此方法不接受空值,并且开发人员仍然传递了一个).

对于具有公共类的库,在公共方法上抛出异常(因为这样做是有意义的).断言用于捕捉你的错误,而不是他们的错误.

编辑:由于空值示例,这可能不完全清楚.我的观点是你使用断言(正如其他人指出的那样)应该永远不会发生的条件,因为这些条件永远不应该成为生产代码.在单元测试或QA测试期间,这些条件绝对必定失败.



1> Mike Hofer..:

我的经验法则:

异常用于运行时错误条件(IO错误,内存不足,无法获取数据库连接等).

断言用于编码错误(此方法不接受空值,并且开发人员仍然传递了一个).

对于具有公共类的库,在公共方法上抛出异常(因为这样做是有意义的).断言用于捕捉你的错误,而不是他们的错误.

编辑:由于空值示例,这可能不完全清楚.我的观点是你使用断言(正如其他人指出的那样)应该永远不会发生的条件,因为这些条件永远不应该成为生产代码.在单元测试或QA测试期间,这些条件绝对必定失败.


问题是从已编译程序集的发行版本中删除了断言.如果您正在编译发布版本,则无法使用它.你*必须*扔.
你能澄清为什么公共图书馆方法应该抛出异常吗?我看不出有人可能从非法论证或坏对象状态中恢复过来.
但这就是重点.他通过在缺陷到达生产之前修复缺陷来恢复.

2> 小智..:

断言你知道不可能发生的事情(即如果它发生了,那就是你不称职的错误).

提高程序常规控制流程未处理的异常情况.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有