当前位置: 首页 > 面试题库 >

Java-重写Object的toString()方法,但我必须抛出异常

子车高超
2023-03-14
问题内容

我遇到了必须重写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 }

我不在乎方法的结尾内容。只要编译就可以了。我只需要修复标题,但是找不到解决方法。提前非常感谢您。


问题答案:

首先,抛出异常toString()是一个非常糟糕的主意。toString()用于许多系统软件(例如调试器)中以生成对象的表示形式。

第一个优先选择是做其他事情,可能创建一个可能抛出的不同方法,并在toString()调用该方法时捕获异常并产生替换输出,例如

super().toString() + " threw " + exception.toString();

如果您确实必须抛出,则可以执行以下操作:

    try
    {
        str.insert(str.length(), current.element().toString() + " ");
        current = fList.next(current);
    }
    catch(Exception e){
       throw new IllegalStateExcception(super.toString(), e);
    }

这会将检查的异常(从java.lang.Exception派生)包装在未检查的异常(从java.lang.RuntimeException派生)中。无需添加throws子句。



 类似资料:
  • 问题内容: 如何覆盖对象类中的equals方法? 即我有 我想将参数obj转换为Person类型,但是如果执行(Person)obj,它将无法正常工作。 问题答案: 您可以将其强制转换为方法,只需使用的实例确保其类型正确

  • 本文向大家介绍java中为何重写equals时必须重写hashCode方法详解,包括了java中为何重写equals时必须重写hashCode方法详解的使用技巧和注意事项,需要的朋友参考一下 前言 大家都知道,equals和hashcode是java.lang.Object类的两个重要的方法,在实际应用中常常需要重写这两个方法,但至于为什么重写这两个方法很多人都搞不明白。 在上一篇博文Java中e

  • 当spring boot启动时,抛出异常 谁知道为什么抛出异常。

  • 在android开发者博客上,我读到了以下内容: “复制观点”是什么意思?因此,如果我有一个ViewPager的片段包含一个ArrayAdapter并且我追加了新的数据,我需要调用内部片段notifyDataSetChanged()并在ViewPager中用getItemPosition()捕获它?如果我不那样做又有什么问题呢?

  • 本文向大家介绍为什么在重写 equals方法的同时必须重写 hashcode方法,包括了为什么在重写 equals方法的同时必须重写 hashcode方法的使用技巧和注意事项,需要的朋友参考一下 我们都知道Java语言是完全面向对象的,在java中,所有的对象都是继承于Object类。 其 equals 方法比较的是两个对象的引用指向的地址,hashcode 是一个本地方法,返回的是对象地址值。O

  • 本文向大家介绍java tostring方法重写代码示例,包括了java tostring方法重写代码示例的使用技巧和注意事项,需要的朋友参考一下 当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串.java中的所有类默认都有一个toString()方法 默认情况下 System.out.println(对象名)或者System.out.println