android中的SAXParseException

时间:2010-01-06 10:08:34

标签: xml android

我正在阅读“专业Android应用程序开发”一书并试图实现一些示例。在第5章第151页中,以下代码抛出SAXParseException。有谁知道为什么?

Document dom = db.parse(in);

我尝试了其他XML文件,抛出了同样的异常。


堆栈跟踪就像:

  

01-07 00:23:58.875:WARN / System.err(221):org.xml.sax.SAXParseException:expected:/ meta read:head(position:END_TAG @ 1:87 in java.io.InputStreamReader @ 43d0c720)   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.refreshEarthquakes(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):在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(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(Native Method)

1 个答案:

答案 0 :(得分:2)

如果在解析XML时出现任何导致其余代码无法运行的问题,则parse方法会抛出SAXParseException,因为如果XML无效,那么可能您不希望代码继续。

parse方法声明它为throws SAXParseException,因此在调用该方法时必须显式捕获该异常,例如

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