Cem*_*mre 1 c++ java error-handling
这是一个广泛的问题,但无论如何我想问.希望我不会得到很多投票:)
今天我去过一次采访,并且(像往常一样)他们让我写一个计算数字阶乘的函数.之后我们讨论了一些可能导致程序崩溃的问题,并讨论了如何让用户知道何时将负值传递给函数.
我个人说使用断言或者可能返回一个特殊号码让用户知道,但我不确定他是否对这些答案非常满意.
在您看来,让用户了解传递给函数的非法值或在这种情况下最好做什么的好方法是什么?
事物的C++方式是抛出异常,如果出现问题,这会强制代码的用户明确地做某事 - 否则他/她的应用程序将终止.
在涉及错误处理时,这也是广泛的建议1,随着计算机功率的增加和编译器变得更加智能,关于使用异常对性能影响的争论开始逐渐消失.
有些人声称使用异常会破坏代码的可读性,这将使其难以遵循并难以维护,并且可能存在一些事实.
在更高级的情况下抛出异常并进行清理并非易事,尽管在一个负责计算"简单"作为数字因子的函数的函数中- 使用异常是一项非常容易的任务.
C++异常的最大问题(从我的角度来看)是缺少finally-clause,如果可以使用一个,然后在捕获异常后编写负责清理的代码会更加简单任务.
推荐阅读:
脚注:
1.主观意见,当然.
如果你找到一个很好的方法让你的代码的调用者知道出错了(可能是通过返回值,通过引用或异常设置的错误标志,或几乎......任何东西)只是确保你使用整个项目中的错误通知系统相同.
没有什么比在错误处理方面使用不稳定的lib时更烦人了.
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |