在scala中的异常时返回自定义返回类型

时间:2018-01-12 22:40:15

标签: scala apache-spark

我正在尝试使用以下方法读取xml以从xml中提取数据

def xmlparser(xml:String): (String,List[String]) =
 Try {
    val documentbuilder=DocumentBuilderFactory.newInstance.newDocumentBuilder
    val xmldocument = documentbuilder.parse(new InputSource(new java.io.StringReader(xml)))
    val nodesofchild=xmldocument.getChildNodes
    val xmlvalues=extractvalues(nodesofchild)
   ("xmlname",xmlvalues)
  }

如果xml有效,我需要返回(" xmlname",xmlvalues),否则我需要返回(" xmlname",null)。我尝试使用"。 toOption.orNull"但它只返回" null"。有人可以帮助我如何返回(" xmlname",null)而不是" null"

1 个答案:

答案 0 :(得分:0)

而不是您当前的代码:

def xmlparser(xml:String): (String, Option[List[String]]) =
 val values = Try {
   val documentbuilder=DocumentBuilderFactory.newInstance.newDocumentBuilder
   val xmldocument = documentbuilder.parse(new InputSource(new java.io.StringReader(xml)))
   val nodesofchild=xmldocument.getChildNodes
   val xmlvalues=extractvalues(nodesofchild)
  }
  ("xmlname", xmlvalues.toOption)
 }