【发布时间】:2011-02-26 11:48:18
【问题描述】:
import java.lang._
import com.ximpleware._
object Sample {
def main(args :Array[String])= {
// println("helloo")
try{
var i :Int = -1
val vgen :VTDGen= new VTDGen()
val ap :AutoPilot =new AutoPilot()
ap.selectXPath("CATALOG/CD/COUNTRY/text()")
if(vgen.parseFile("../catalog.xml", false)) {
val vnav :VTDNav = vgen.getNav()
ap.bind(vnav)
while((i=ap.evalXPath)!= -1) {
println(vnav.toString(i))
println(vnav.toNormalizedString(vnav.getText()))
}
ap.resetXPath()
}
}
catch {
case e :Exception => println(e)
}
}
}
我已经导入了 VTD-XML 库 它编译得很好,但在执行时会打印一个异常
:java.lang.ArrayIndexOutOfBoundsException: -1
我已经解决了代码中的 while 问题。但问题是我总是得到-1 ap.evalXPAth
【问题讨论】:
-
运行时异常通常使用堆栈跟踪来调试...您能否更具体地了解您的问题?
-
你在这里使用 try/catch 的方式很糟糕:你捕捉到所有的问题并脱离上下文打印单个消息。顺便说一句,您的问题很可能与 scala 无关。