SAXParseException в андроиде - PullRequest
       3

SAXParseException в андроиде

2 голосов
/ 06 января 2010

Я слежу за книгой «Профессиональная разработка приложений для Android» и пытаюсь реализовать некоторые примеры. В главе 5 на стр. 151 следующий код выдает SAXParseException. Кто-нибудь знает почему?

Document dom = db.parse(in);

Я пробовал другие файлы XML, было сгенерировано то же исключение.


Трассировка стека имеет вид:

01-07 00: 23: 58.875: WARN / System.err (221): org.xml.sax.SAXParseException: ожидается: / meta read: head (позиция: END_TAG @ 1: 87 в java.io.InputStreamReader @ 43d0c720) 01-07 00: 23: 58.895: WARN / System.err (221): в org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse (DocumentBuilderImpl.java:151) 01-07 00: 23: 58.906: WARN / System.err (221): по адресу javax.xml.parsers.DocumentBuilder.parse (DocumentBuilder.java:157) 01-07 00: 23: 58.915: WARN / System.err (221): на com.paad.earthquake.Earthquake.refreshEarthquakes (Earthquake.java:82) 01-07 00: 23: 58.925: WARN / System.err (221): на com.paad.earthquake.Earthquake.onCreate (Earthquake.java:60) 01-07 00: 23: 58.936: WARN / System.err (221): на android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047) 01-07 00: 23: 58.936: WARN / System.err (221): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2444) 01-07 00: 23: 58.946: WARN / System.err (221): на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2497) 01-07 00: 23: 58.955: WARN / System.err (221): на android.app.ActivityThread.access $ 2200 (ActivityThread.java:119) 01-07 00: 23: 58.966: WARN / System.err (221): на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1848) 01-07 00: 23: 58.976: WARN / System.err (221): на android.os.Handler.dispatchMessage (Handler.java:99) 01-07 00: 23: 58.987: WARN / System.err (221): на android.os.Looper.loop (Looper.java:123) 01-07 00: 23: 58.996: WARN / System.err (221): на android.app.ActivityThread.main (ActivityThread.java:4338) 01-07 00: 23: 58.996: WARN / System.err (221): at java.lang.reflect.Method.invokeNative (собственный метод) 01-07 00: 23: 59.026: WARN / System.err (221): на java.lang.reflect.Method.invoke (Method.java:521) 01-07 00: 23: 59.040: WARN / System.err (221): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:860) 01-07 00: 23: 59.046: WARN / System.err (221): на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:618) 01-07 00: 23: 59.056: WARN / System.err (221): at dalvik.system.NativeStart.main (собственный метод)

1 Ответ

2 голосов
/ 06 января 2010

Метод parse выдает исключение SAXParseException на случай, если при синтаксическом анализе XML возникнут проблемы, из-за которых остальная часть кода не сможет быть запущена, поскольку, если XML недопустим, возможно, вы не хотите, чтобы ваш код продолжить.

Метод parse объявляет, что он throws SAXParseException, поэтому вы должны явно перехватить это исключение при вызове этого метода, например,

try {
    Document dom = db.parse(in);
} catch (SAXParseException e) {
    e.printStackTrace();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...