как вызвать метод, который содержит обработчик исключений - PullRequest
1 голос
/ 21 декабря 2011

Когда у меня есть такой метод:

public XmlParser() throws XmlPullParserException, IOException
{
  ...do some stuff...
}

Как мне вызвать этот метод?

Я пытался сделать это:

XmlParser xmlparse = new XmlParser();

но я получаю необработанное исключение типа IOException ошибка.

Спасибо

Ответы [ 5 ]

3 голосов
/ 21 декабря 2011

Поскольку конструктор для XmlParser объявляет, что он throws XmlPullParserException, IOException, вам необходимо выполнить одну из следующих вещей в своем коде.

Ваш первый вариант - перехватить эти исключения прямо в вашем коде:

XmlParser xmlparse;

try {
    xmlparse = new XmlParser();
} catch (XmlPullParserException e) {
    // handle...
} catch (IOException e) {
    // handle...
}

В качестве альтернативы, вы можете объявить какой бы метод вы ни включали в этот код, чтобы он также throws XmlPullParserException, IOException.

Наконец, вы можете поймать одно из исключений и передать другое. Давайте предположим, что вы пишете myMethod:

public void myMethod() throws IOException {
    XmlParser xmlparse;

    try {
        xmlparse = new XmlParser();
    } catch (XmlPullParserException e) {
        // handle...
    }
}
3 голосов
/ 21 декабря 2011

Либо используйте блок try/catch, либо предложение throws.

try/catch, если вы хотите обработать его:

try {
    XmlParser xmlparse = new XmlParser();
} catch(XmlPullParserException ex) {
    // handler code
} catch(IOException ex) {
    // handler code
}

throws, если вы делаете это внутриметод и хотите, чтобы вызывающий метод обрабатывал его:

public void yourMethod() throws XmlPullParserException, IOException {

    XmlParser xmlparse = new XmlParser();
    //...
1 голос
/ 21 декабря 2011
try{
    XmlParser xmlparse = new XmlParser();
}catch(XmlPuillParserException e){
    //do something useful
}
catch(IOException e){
    //do something useful
}

Или вместо IOException и XmlPuillParserException вы можете использовать Exception, но это плохой стиль

1 голос
/ 21 декабря 2011

Вы должны убедиться, что перехватили исключения:

....
try {
    XmlParser xmlparse = new XmlParser();
} catch (XmlPuillParserException e) {
    // do something
} catch (IOException e) {
    // do something
}
1 голос
/ 21 декабря 2011

Вы окружаете его попыткой catch:

try{
XmlParser xmlparse = new XmlParser();
} catch (XmlPullParserException e) {
} catch (IOException) {
}

Не забудьте правильно обрабатывать исключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...