Вы ловите неправильное исключение.Вы должны поймать XPathExpressionException
:
val remainderParts = listOf("/Company/Employees/Employee[Name='Michael", "Scott']/Salary", "45000")
var xpath: XPathExpression = (1..remainderParts.size).mapNotNull {
try {
XPathFactory.newInstance().newXPath().compile(remainderParts.subList(0, it).joinToString(" "))
}
catch (e: XPathExpressionException) {
null
}
}.first()
Если вы не уверены, какое исключение для ловли использовать Exception
, который является базовым классом всех исключений, и вывести тип, подобный этому:
// ...
catch (e: Exception) {
println(e::class.simpleName) // XPathExpressionException
}