Ade*_*ros 6 assert exception-handling
在我参加 Udacity 的一门关于代码调试的在线课程中,教授说在实际代码中最好使用断言而不是异常抛出。
尽管在我的编程生涯中,我从未见过有人使用它。
你知道为什么会这样吗?你同意?
PS:下图是 Python 代码,但我想这个想法适用于所有编程语言。此外,这门课程只有 4 个月大,所以我认为所教授的方法是最现代的方法。

断言仅用于调试,并允许您检查一行中的不变量。断言和类似的宏在测试框架中普遍使用。除了例外,您确实需要关心库或程序的其余部分正在做什么。断言就这么简单。
它将使程序崩溃,并且对于导致它的原因没有任何歧义 - 你的断言导致了它。在调试器中更容易到达那里。异常可能会被捕获并且不会停止程序,或者可能会导致副作用,例如从通常不会发生的地方进行堆栈展开、调用所有析构函数等,而当您并不真正关心这些时因为你正在调试。
对于异常,您需要声明要抛出的函数,必须在 C++ 等语言中启用异常。
如果您正在以交互方式进行调试,而不仅仅是以批处理模式运行测试用例,并且您的示例是在 Python 中,我认为您会发现启动 pdb 并立即停止程序的函数更有帮助。
| 归档时间: |
|
| 查看次数: |
1024 次 |
| 最近记录: |