首页 > 解决方案 > 我应该启动错误还是更正值

问题描述

假设我们创建了一个列表类,其函数可以消除从位置 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 之类的异常?

标签: algorithmerror-handling

解决方案


这是一个关于编程标准的好问题。end如果有人用>调用你的方法size,他们在技术上违反了你的函数的先决条件。程序员调用您的函数可能认为它做了其他事情,例如消除了它们给出的值之间的所有列表值。如果你的函数没有抛出异常,他们不会知道有什么问题,直到后来出现逻辑错误。如果给定的参数不正确,最好的做法是抛出异常,解释他们做错了什么。它给使用你的功能的人带来了更多的挑战,但它在以后为他们节省了更多的麻烦。


推荐阅读