ADT中的Java未报告异常
对于一个类,我必须构建一个队列ADT,并使用该ADT创建一个执行基本加法/减法的应用程序。问题是,当我尝试调用与异常链接的队列方法时,我会得到“错误:未报告的异常FullCollectionException;必须捕获或声明为抛出” 下面是我的代码的样子ADT中的Java未报告异常,java,exception,Java,Exception,对于一个类,我必须构建一个队列ADT,并使用该ADT创建一个执行基本加法/减法的应用程序。问题是,当我尝试调用与异常链接的队列方法时,我会得到“错误:未报告的异常FullCollectionException;必须捕获或声明为抛出” 下面是我的代码的样子 public void insert(Object element) throws FullCollectionException { if(isFull()) throw new FullColl
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);
}
}
我尝试了几种不同的方法,但似乎都不管用 除非
FullCollectionException
是RuntimeException
的子项(未选中),否则您将无法执行此操作。试试这个:
try {
q.insert(10);
q.insert(30);
} catch (FullCollectionException fce) {
// Handle exception
}
您需要声明
main()
可能引发该异常,如下所示:
public static void main(String a[]) throws FullCollectionException
{
Queue q = new Queue();
StackObject so = new StackObject();
q.insert(10);
q.insert(30);
}
或者您可以添加一个
catch
块,但只有在您有从异常中恢复的实际计划时,才应该这样做。否则,实际上最好让程序失败,而不是默默地掩盖问题。您需要在main方法中显式抛出或捕获FullCollectionException
PS:如果您使用诸如Eclipse或Netbeans之类的IDE来编写代码,系统将提示您添加此类异常处理语句 找到了答案。我把异常作为我任务的一部分,我只是让它们成为异常的子对象,而不是RuntimeException。谢谢你的帮助:))