【发布时间】:2019-11-18 19:04:39
【问题描述】:
我遇到了一个问题,我必须重写 Object 的 toString() 方法,但原始方法不会引发任何异常。但是,我正在使用一些需要抛出异常的通用代码。
public String toString() throws EmptyListException, InvalidPositionException
{
Position<Entry<E>> current = fList.first();
StringBuilder str = new StringBuilder();
for(int i = 0; i < size(); i++)
{
try
{
str.insert(str.length(), current.element().toString() + " ");
current = fList.next(current);
}
catch(Exception e){}
}
return str.toString();
}
这是 FavoriteList.java 的一部分。必须抛出这些异常。如果有任何方法可以以某种方式抑制这些异常或在方法中捕获它们,那将很有帮助。
最后,我的方法头应该是这样的:
public String toString()
{ content }
我不关心方法的结束内容。只要它编译我很好。我只需要修复标题,但我找不到修复它的方法。 非常感谢您。
【问题讨论】:
-
看起来你已经用那个空的catch块抑制了异常,不是吗?为什么他们不得不被
toString()抛出? -
我试图用那个空的 catch 块来压制它们,但它不起作用。如果我删除它,我最终不得不抛出 EmptyList 和 InvalidPosition 异常。
-
看起来
fList.first()抛出了该异常,但它不是try/catch块的一部分...为什么? -
您应该发布您说您使用的
generic code,并提供有关您在那里抛出的异常的一些详细信息。他们是检查/未检查的异常吗?
标签: java