2010-01-06 5 views
2

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

Document dom = db.parse(in); 

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


Стек след как:

01-07 00: 23: 58.875: WARN/System.err (221): org.xml.sax.SAXParseException: ожидаемое/мета чтения: head (позиция: END_TAG @ 1: 87 in [email protected]) 01-07 00: 23: 58.895: WARN/System.err (221): at org.apache.harmony.xml.parsers.DocumentBuilderImpl. parse (DocumentBuilderImpl.java:151) 01-07 00: 23: 58.906: WARN/System.err (221): at javax.xml.parsers.DocumentBuilder.parse (DocumentBuilder.java:157) 01-07 00: 23: 58.915: WARN/System.err (221): at com.paad.earthquake.Earthquake.refre shEarthquakes (Earthquake.java:82) 01-07 00: 23: 58.925: WARN/System.err (221): at com.paad.earthquake.Earthquake.onCreate (Earthquake.java:60) 01-07 00: 23: 58.936: WARN/System.err (221): at 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): at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2497) 01-07 00: 23: 58.955: WARN/System.err (221): at android.app.ActivityThread.access $ 2200 (ActivityThread.java:119) 01-07 00: 23: 58.966: WARN/System.err (221): at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1848) 01-07 00: 23: 58.976: WARN/System.err (221): при droid.os.Handler.dispatchMessage (Handler.java:99) 01-07 00: 23: 58.987: WARN/System.err (221): at android.os.Looper.loop (Looper.java:123) 01 -07 00: 23: 58.996: WARN/System.err (221): at 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): at java.lang.reflect.Method.invoke (Method.java:521) 01-07 00: 23: 59.040: WARN/System.err (221): at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:860) 01-07 00: 23: 59.046 : WARN/System.err (221): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:618) 01-07 00: 23: 59.056: WARN/System.err (221): at dalvik .system.NativeStart.main (родной метод)

+0

Попробуйте распечатать полную трассировку стека исключений для * SAXParseException * и опубликовать его здесь. –

ответ

2

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

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

try { 
    Document dom = db.parse(in); 
} catch (SAXParseException e) { 
    e.printStackTrace(); 
} 
Смежные вопросы