请教下自定义接口抛出异常的合理性 2009-06-10 yingwu1206 我现在要定义一个接口,这个接口是传进一条SQL从数据库中查出一条记录,现在如果在查询的过程中发现查到得记录不止一条,这时候我该不该抛出一个异常?我个人认为应该,理由如下:我定义这个接口是就是为了从这个接口中获得唯一的一条记录,如果实际有两条记录这就说明传进来的sql是错误的,我应该抛出异常让调用者知道,而不是返回两条记录中的任意一条
tearoffhu 2009-06-11 15:31 不,不应该抛。sql错误跟是不是一条记录没什么关系。除非sql特别复杂,一般只要运行的过去,就是正确的。之所以要你保留是为了灵活性。如果逻辑需要特别处理,你再调整,最好不要异常,否则会麻烦的。
ACoder 2009-06-12 08:25 这种条件必须抛出异常,当你确定应取得记录数为1,那么取出2条,说明数据存在问题或者程序存在问题,也就是说运算的结果可能是错误的,这种情况下必须给用户一个提示,否则只是为了程序能够通过而不负责任,这会给使用者带来极大的风险,所以必须抛出异常。
freebox 2009-06-12 08:57 异常必须得有,问题是应该在哪一层次上掷出,如果接口是数据操作接口,它的目的就和业务目的不一样,对数据接口只有sql执行不过去的时候掷出异常。这个异常应该在业务层次掷出,取出数据是两条或以上是sql正确的,是业务不正确的。