algorithm - 我应该启动错误还是更正值
问题描述
假设我们创建了一个列表类,其函数可以消除从位置 a 到位置 b 的元素。
该类应该被其他程序员使用(如 std::list)。
示例:
列表值:{0,1,2,3,4,5,6},我们用 (begin = 2, end = 5) 调用此函数。这会将列表更改为 {0,1,6}
如果用户调用列表的 end > size 的函数,最好重新分配 end = size 并删除直到最后一个或启动像 out_of_range 之类的异常?
解决方案
这是一个关于编程标准的好问题。end
如果有人用>调用你的方法size
,他们在技术上违反了你的函数的先决条件。程序员调用您的函数可能认为它做了其他事情,例如消除了它们给出的值之间的所有列表值。如果你的函数没有抛出异常,他们不会知道有什么问题,直到后来出现逻辑错误。如果给定的参数不正确,最好的做法是抛出异常,解释他们做错了什么。它给使用你的功能的人带来了更多的挑战,但它在以后为他们节省了更多的麻烦。
推荐阅读
- android - 为什么我们不能在没有 youtube 官方应用的情况下使用 youtube api
- r - 如何将立方体划分为一定的网格数并在 r 中找到每个网格中的元素?
- c++ - 在单链表中的给定节点之后插入节点不起作用
- react-native - react-native 应用程序中未显示警报框
- arrays - 将数组拆分为列 pyspark-array 长度变量
- javascript - 使用名称捕获动态创建的 Select 的 onchange 事件
- angular - 容器旋转时角度CDK拖放错误的拖动方向
- html - 不可能的 HTML 表格
- c++ - 有没有办法让循环在等待用户输入的同时继续循环而不停止循环?
- angular - 如何迭代从可观察的响应返回的数据