好吧,对于一个类,我必须构建一个队列ADT并使用该ADT创建一个执行基本添加/减少的应用程序。问题是当我尝试调用队列的方法时,链接到它们的异常我得到“错误:未报告的异常FullCollectionException;必须被捕获或声明被抛出”。
以下是我的代码。
public void insert(Object element) throws FullCollectionException
{
if(isFull())
throw new FullCollectionException("Queue");
else
{
queue[count] = element;
count++;
}
}
isFull方法只是进行简单的比较,以查看数组是否满足其长度。然后使用它的类如下。
public class Stocks
{
public static void main(String a[])
{
Queue q = new Queue();
StackObject so = new StackObject();
q.insert(10);
q.insert(30);
}
}
我尝试了几种不同的东西,但似乎都没有效果。
答案 0 :(得分:0)
除非FullCollectionException
是RuntimeException
的子项(未经检查),否则您将无法执行此操作。试试这个:
try {
q.insert(10);
q.insert(30);
} catch (FullCollectionException fce) {
// Handle exception
}
答案 1 :(得分:0)
您需要声明main()
可能会抛出该异常,如下所示:
public static void main(String a[]) throws FullCollectionException
{
Queue q = new Queue();
StackObject so = new StackObject();
q.insert(10);
q.insert(30);
}
或者您可以添加catch
块,但是如果您有实际计划从异常中恢复,则应该只执行此操作。否则,让你的程序失败而不是默默地扫除地毯下的问题实际上更好。
答案 2 :(得分:0)
您需要在main方法中显式抛出或捕获FullCollectionException
。
PS:如果您使用Eclipse或Netbeans等IDE编写代码,系统将提示您添加此类异常处理语句。
答案 3 :(得分:0)
想出来。我将异常作为我的任务的一部分,我让他们成为Exception的孩子,而不是RuntimeException。谢谢你的帮助:))