抛出UnsupportedOperationException

时间:2013-03-11 00:43:51

标签: java exception-handling try-catch

所以其中一个方法描述如下:

  

public BasicLinkedList addToFront(T data)此操作无效   对于排序列表。将生成UnsupportedOperationException   使用消息“排序列表的无效操作。”

我的代码是这样的:

public BasicLinkedList<T> addToFront(T data) {
    try {
        throw new UnsupportedOperationException("Invalid operation for sorted list.");
    } catch (java.lang.UnsupportedOperationException e) {
        System.out.println("Invalid operation for sorted list.");
    }
    return this;
}

这是正确的做法吗?我刚刚使用println()打印出消息,但是有不同的方式来生成消息吗?

2 个答案:

答案 0 :(得分:16)

您不希望在方法中捕获异常 - 关键是让调用者知道不支持该操作:

public BasicLinkedList<T> addToFront(T data) {
    throw new UnsupportedOperationException("Invalid operation for sorted list.");
}

答案 1 :(得分:2)

您可以将代码重写为此类

public BasicLinkedList<T> addToFront(T data) throws UnsupportedOperationException {
    if (this instanceof SortedList) {
        throw new UnsupportedOperationException("Invalid operation for sorted list.");
    }else{
        return this;
    }
}

这基本上可以完成你所要求的。