当我做DOM XML Schema验证时,当我故意错误的测试文件中出现语法错误时,我收到了此错误。是否有可能在java中捕获致命的xml异常?
[Fatal Error] :10:3: The element type "gizmos" must be terminated by the matching end-tag "</gizmos>".
不过,我要赶这使得它不会把红色的致命错误警告,而不是一个消息,说像“你的XML是无效的。”可能吗?
谢谢,
当我做DOM XML Schema验证时,当我故意错误的测试文件中出现语法错误时,我收到了此错误。是否有可能在java中捕获致命的xml异常?
[Fatal Error] :10:3: The element type "gizmos" must be terminated by the matching end-tag "</gizmos>".
不过,我要赶这使得它不会把红色的致命错误警告,而不是一个消息,说像“你的XML是无效的。”可能吗?
谢谢,
错误不能捕捉,只有例外可以捕捉。
根据Java文档:
一个错误是Throwable的子类,表示严重的问题,合理的应用程序不应该试图捕获。大多数此类错误都是异常情况。 ThreadDeath错误虽然是一个“正常”条件,但也是Error的一个子类,因为大多数应用程序不应该试图捕获它。 一个方法不需要在其throws子句中声明在执行该方法期间可能抛出的错误的任何子类,但没有捕获到,因为这些错误是不应该发生的异常情况。也就是说,出于编译时检查异常的目的,Error及其子类被视为未经检查的异常。
但是,仍然可以捕获Throwable来捕获任何错误。不过,这并不推荐。
catch (Throwable e) {
//e.printStackTrace();
}
I believe you can catch Throwable to handle your scenario
try{
....
....
....
}catch (Exception e) {
e.printStackTrace();
}catch (Throwable t) {
t.printStackTrace();
}
您可以赶上的Throwable(错误延伸的Throwable):
try {
//...
} catch(Throwable e) {
//...
}
请注意,它通常建议不要这样做。你可以在这里阅读更多关于它的信息:When to catch java.lang.Error?。
如果您使用的是JAXP验证API,那么您可以指定一个ErrorHandler来接收错误通知。有了这个,您可以更改显示的消息和显示的位置。
还有没有办法做我写的东西? – Umut