2010-01-06 23 views
2

我正在關注「專業Android應用程序開發」一書,並試圖實現一些示例。在第5章第151頁中,以下代碼將引發SAXParseException。有誰知道爲什麼?SAXParseException在android

Document dom = db.parse(in); 

我嘗試了其他XML文件,拋出了相同的異常。


堆棧跟蹤是這樣的:

01-07 00:23:58.875:WARN/System.err的(221):org.xml.sax.SAXParseException:期望值/元讀:頭(位置:END_TAG @ 1:87 in [email protected]) 01-07 00:23:58.895:WARN/System.err(221):at org.apache.harmony.xml.parsers.DocumentBuilderImpl。解析(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地震(地震.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):at 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):at an 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) :在java.lang.reflect.Method.invokeNative(Native Method) 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 *的完整異常堆棧跟蹤並將其張貼到此處。 – 2010-01-06 10:10:43

回答

2

解析方法會拋出一個SAXParseException,以防在解析XML時出現任何問題,導致其餘代碼無法運行,因爲如果XML無效,那麼您可能不希望你的代碼繼續。

解析方法聲明它爲throws SAXParseException,因此在調用該方法時必須顯式捕獲該異常。

try { 
    Document dom = db.parse(in); 
} catch (SAXParseException e) { 
    e.printStackTrace(); 
}