I am working on a homework assignment for a Java Data Structures class, and we have to build a program from a stack ADT using a linked list implementation. The professor has requested that we include a method called popTop() which pops the top element of the stack, and throws a "StackUnderflowException" if the stack is empty. From what I can gather this is an exception class that we have to write ourselves, and I am having some problems with it. If anyone could help me I would be extremely appreciative. Here is some of my code: 

```
private class StackUnderflowException extends RuntimeException {

    public StackUnderflowException() {
        super("Cannot pop the top, stack is empty");
    }
    public StackUnderflowException(String message) {
        super(message);
    }
}

```

That's the exception class I wrote, here is the beginning of the popTop() method that I have written thus far: 

```
public T popTop() throws StackUnderflowException {
    if (sz <= 0) {
        throw new StackUnderflowException();
    }
}

```

I am getting errors suggesting that StackUnderflowException cannot be a subclass of RuntimeException, could anyone shed some more light on this? And within the method I'm getting errors saying StackUnderflowException is undefined.