请教下自定义接口抛出异常的合理性

09-06-10 yingwu1206
我现在要定义一个接口,这个接口是传进一条SQL从数据库中查出一条记录,现在如果在查询的过程中发现查到得记录不止一条,这时候我该不该抛出一个异常?

我个人认为应该,理由如下:我定义这个接口是就是为了从这个接口中获得唯一的一条记录,如果实际有两条记录这就说明传进来的sql是错误的,我应该抛出异常让调用者知道,而不是返回两条记录中的任意一条

ACoder
2009-06-10 10:24
对,应该抛出异常

tearoffhu
2009-06-11 15:31
不,不应该抛。sql错误跟是不是一条记录没什么关系。

除非sql特别复杂,一般只要运行的过去,就是正确的。

之所以要你保留是为了灵活性。如果逻辑需要特别处理,你再调整,最好不要异常,否则会麻烦的。

yingwu1206
2009-06-11 18:32
谢谢两位的回答,抛不抛异常也是我和同事讨论的,我是主张抛出的,那么请问楼上一般什么时候抛出异常可有什么原则可供遵循?

ACoder
2009-06-12 08:25
这种条件必须抛出异常,当你确定应取得记录数为1,那么取出2条,说明数据存在问题或者程序存在问题,也就是说运算的结果可能是错误的,这种情况下必须给用户一个提示,否则只是为了程序能够通过而不负责任,这会给使用者带来极大的风险,所以必须抛出异常。

猜你喜欢
2Go 1 2 下一页