当尝试将项添加到固定大小的自定义集合时,是否存在可以抛出的现有Java异常,其中操作会导致集合超出其大小?集合是一种队列形式,因此" index"的概念没有被其界面暴露,否则我会使用IndexOutOfBoundsException。
答案 0 :(得分:3)
ArrayBlockingQueue
已经具有此用例,并且在集合已满的情况下抛出IllegalStateException
。
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ArrayBlockingQueue.html#add(E)
抛出: IllegalStateException - 如果此队列已满
所以IllegalStateException
是Java在这种情况下已经使用的例外。
答案 1 :(得分:1)
你也可以抛出一个IllegalArgumentException
,因为正如文档所述,它是......
抛出表示某个方法已被传递为非法或 不恰当的论点。
这也是技术上正确的,因为收集和方法已有详细记录。然后,假设客户有责任在插入之前检查容量。
答案 2 :(得分:1)
您可以手动抛出IndexOutOfBoundsException。
throw new IndexOutOfBoundsException("your message goes here");