原因:
查询数据后你用的是List接收出参,然而你的List里边没有值,你却取了里边的值就报这个错。
具体原因分析:
这个异常通常是在程序中使用了一个空集合或数组,并尝试通过索引访问其中的元素,导致程序崩溃。
具体来说,Index: 0, Size: 0 表示程序中的一个集合或数组的大小为0,而在尝试访问索引为0的元素时发生了异常。这通常发生在以下情况:
当程序尝试从一个空的集合或数组中访问元素时,就会发生此异常。例如,如果一个数组没有初始化或者它的大小为0,程序就会尝试访问数组的第一个元素(即索引为0的元素),这时就会出现Index: 0, Size: 0异常。
另一个可能发生此异常的情况是当程序中使用了错误的索引值。例如,如果程序中有一个集合或数组,其大小为0或者小于所访问的索引值,就会出现此异常。
要解决这个异常,可以在访问集合或数组之前先检查其是否为空,或者检查所要访问的索引值是否小于集合或数组的大小。这样可以避免访问一个空集合或数组,或者超出其索引范围而导致程序崩溃。
代码演示
List tmOutputDTO =tmMapper.excludeDuplicates(hos.getid());if (tmOutputDTO!=null) { throw new ApplicationException("已存在"+tmOutputDTO.get(0).getTeamid()+ "不允许重复添加"); }
这个代码中是判断不了tmOutputDTO是否为空的,因为他是一个实例化的类,它里边及时参数为为空,它存在属性,所以不为被判断为空。需要改成下边这段代码:
List tmOutputDTO =tmMapper.excludeDuplicates(hos.getid());if (tmOutputDTO.size()>0) { throw new ApplicationException("已存在"+tmOutputDTO.get(0).getTeamid()+ "不允许重复添加"); }
这样取值就无误了
让你的能力撑起你的野心
来源地址:https://blog.csdn.net/qq_45656077/article/details/129662553