当我执行DOM XML Schema验证时,如果我故意不正确的测试文件中存在语法错误,则会收到此错误。
[Fatal Error] :10:3: The element type "gizmos" must be terminated by the matching end-tag "</gizmos>".
但是,我想抓住这个,以便它不会给出红色致命错误警告,而是一条消息说“你的xml无效”。有可能吗?
谢谢,
答案 0 :(得分:2)
I believe you can catch Throwable to handle your scenario
try{
....
....
....
}catch (Exception e) {
e.printStackTrace();
}catch (Throwable t) {
t.printStackTrace();
}
答案 1 :(得分:1)
无法捕获错误,只能捕获异常。
根据Java Docs:
错误是Throwable的子类,表示合理的应用程序不应该尝试捕获的严重问题。大多数此类错误都是异常情况。 ThreadDeath错误,虽然是“正常”条件,但也是Error的子类,因为大多数应用程序不应该尝试捕获它。 一个方法不需要在其throws子句中声明在执行方法期间可能抛出但未捕获的任何Error类,因为这些错误是永远不应发生的异常情况。也就是说,出于编译时异常检查的目的,Error及其子类被视为未经检查的异常。
但是,你仍然可以抓住Throwable来捕获任何错误。但不建议这样做。
catch (Throwable e) {
//e.printStackTrace();
}
答案 2 :(得分:1)
您可以捕获Throwable(错误扩展为Throwable):
try {
//...
} catch(Throwable e) {
//...
}
请注意,通常建议不要这样做。您可以在此处详细了解:When to catch java.lang.Error?。
答案 3 :(得分:1)
如果您使用的是JAXP验证API,则可以指定ErrorHandler来接收错误通知。通过此操作,您可以更改显示的消息及其显示位置。