开发者社区> 问答> 正文

分页接口传入的分页参数页码、页大小小于等于零 配置报错 

问题很简单:对于一个分页接口MyArticle.PageQuery(int pageSize, int pageIndex [, other argument])。如果传入的pageSize, pageIndex可能为小于等于0的值,我该怎么办?
.NET中有一个OutOfRangeException,貌似对这些问题是抛出这个异常的。但是我的想法是,不太愿意在这个PageQuery接口中增加参数校验机制。所以想看一看做过这种接口的人都是采用什么方法。

我这边现在在考虑: 在这个方法体内做检查: 第一种:对两个参数进行小于1检查,如果小于1则抛出参数无效的异常信息 第二种:对两个参数进行小于1检查,如果小于1则设置为默认值 不在这个方法体内做检查: 第三种:在方法的注释里面写明参数的范围,强调如何使用。在调用该方法的地方主动对参数进行格式化检查。

现在的情况是由于以往的变成习惯有大量的分页接口代码没有对这两个参数做任何检查和限制。而在这两个参数小于1的时候返回的结果属于不在期望内的结果。采用第一种的话,接口会抛出异常,需要在调用的地方进行异常捕捉处理(代码修改量最大,但是感觉最规则的做法)。第二种接口不会抛出异常,只对这些分页接口进行改造就可以了(代码量较小,但是对调用方隐藏了参数异常的信息。也就是调用的人传入了错误的参数,我还给他返回结果,他都不知道自己错了)。第三种则不需要对调用方和被调用的结构进行改造,只需要在注释中添加信息即可(单次代码修改量最小。新的调用方需要注意进行参数格式化,老的调用方在发生问题时才需要去对调用方的代码增加参数检查)。

有方法建议提,勿喷 

展开
收起
kun坤 2020-05-31 18:05:30 1200 0
1 条回答
写回答
取消 提交回答
  • 设置默认值
    如果《=0的话,pagesize=10,pageIndex=1 ######那就拦截这个异常呗,报错了就置为0,但显然判断更清晰######请问判断是指什么?######if else啊,检验必须有,通常做法是写一个分页的VO 在他们校验逻辑写VO里就行了

    2020-05-31 18:05:34
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载