Выдача исключения из ServletContextListener - PullRequest
4 голосов
/ 26 августа 2009

Я хочу вызвать исключение ServletContext из метода в классе, который реализует ServletContextLister.

Вот моя реализация, которая терпит неудачу:

public class  Initializer implements ServletContextListener {

    private void checkEncryptedFile() throws ServletException {

    FileReader fr;
    try {
        fr = new FileReader("TestFile");
        BufferedReader br = new BufferedReader(fr);
        String str = br.readLine();
        if(!str.equals("aasditya")){
        throw new ServletException();
        }


    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    catch(IOException e){
        e.printStackTrace();
    }
    catch(ServletException se){
        throw new ServletException("kiasku " + se.getMessage(), se);

    }
    }
}

Может кто-нибудь предложить какие-либо альтернативные методы. Пожалуйста, объясните мне это. Спасибо

1 Ответ

2 голосов
/ 26 августа 2009

Когда метод интерфейса также генерирует исключение, вы должны удалить блоки catch без

try {
                //....

    }
    catch(IOException e){
            throw new ServletException("kiasku " + e.getMessage(), e);
    }

А чем должна работать ваша исключительная ситуация.

EDIT:

Правильно ли реализованы методы интерфейса ServletContextListener ? Их нет в вашем примере кода. Но они должны быть в классе.

Насколько я вижу, методы interfae не генерируют никаких типов исключений. Когда вы действительно хотите BREAK уведомление слушателя, вы должны выбросить RuntimeException.

EDIT2:

Я бы тоже поменял

if(!str.equals("aasditya")){
throw new ServletException();
}

до

if(!"aasditya".equals(str)){
throw new ServletException();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...