Method refers to the missing exception в чем ошибка?

По какой причине мне выдает следующую ошибку?

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
        The method statusValidator(String) from the type Cave refers to the missing type StatusSetterException
        StatusSetterException cannot be resolved to a type

        at Entities.Cave$CaveDoor.setStatus(Cave.java:23)
        at Main.main(Main.java:110)

У меня есть вложенный класс CaveDoor.

    public class CaveDoor{
        private String name;
        private String status;
        public CaveDoor(String name){
            this.name = name;
        }
        public String getName(){
            return name;
        }
        //status может принимать только CLOSED или OPENED
        public void setStatus(String status){
            try {
                statusValidator(status);
                this.status = status;
            } 
            catch (StatusSetterException e) {
                System.out.println(e);
            }
        }
    }
    public void statusValidator(String string) throws StatusSetterException{
        if  ( (!string.equals( "OPENED")) || (!string.equals( "CLOSED"))) {
            throw new StatusSetterException("status может принимать только CLOSED или OPENED");
        }        
    }

В main я создаю экземпляр этого класса и вызываю метод setStatus.

Cave.CaveDoor caveDoor = Cave.new CaveDoor("Дверь пещеры");
caveDoor.setStatus("OPENED");

Сама Exception у меня самая обыкновенная:

package Exceptions;

public class StatusSetterException extends Exception{
    public StatusSetterException(String message){
        super(message);
    }
}

По какой причине у меня в импорте указано следующее?? Возможно это и есть ответ на мой вопрос в целом, но я не могу понять.

The import Entities.Cave.CaveDoor is never used

P.s. не спрашивайте почему у меня статус - строка. Так надо.


Ответы (1 шт):

Автор решения: keks

Я не знаю что именно произошло, но я просто создал новый exception с абсолютно таким же наследованием от Exception и тем же конструктором, и всё заработало.Правда, сама логика, котороую я ожидаю от программы (выводить ошибку в случае неверного задания статуса, и ничего не выводить в противном), не работает вследствие того, что по какой то причине у меня метод setStatus не меняет статус, и тот остается null.

upd: проблема в .equals. знак "!" не отрицал входные значения.

→ Ссылка