Когда у меня есть такой метод:
public XmlParser() throws XmlPullParserException, IOException
{
...do some stuff...
}
Как я могу назвать этот метод?
Я попытался сделать это:
XmlParser xmlparse = new XmlParser();
но я получаю ошибку IOException исключения типа исключения.
благодаря
Поскольку конструктор для 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...
}
}
Либо используйте блок 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();
//...
Вы должны следить за исключениями:
....
try {
XmlParser xmlparse = new XmlParser();
} catch (XmlPuillParserException e) {
// do something
} catch (IOException e) {
// do something
}
try{
XmlParser xmlparse = new XmlParser();
}catch(XmlPuillParserException e){
//do something useful
}
catch(IOException e){
//do something useful
}
Или вместо IOException и XmlPuillParserException вы можете использовать Exception, но это плохой стиль
Вы окружаете его с помощью try catch:
try{
XmlParser xmlparse = new XmlParser();
} catch (XmlPullParserException e) {
} catch (IOException) {
}
Не забывайте правильно обрабатывать исключения.
catch (IOException e)
.
e
должен быть привязан к вмещающему блоку ... Если у вас нет другой локальной переменной, объявленной с именемe
вне try / catch. В любом случае, приведенный выше код не протестирован, но должен быть достаточно близко, чтобы вы могли добраться туда, куда вам нужно идти ...