0

当我进行 DOM XML 模式验证时,当我故意不正确的测试文件中存在语法错误时,我会收到此错误。

[Fatal Error] :10:3: The element type "gizmos" must be terminated by the matching end-tag "</gizmos>".

但是,我想抓住它,这样它就不会给出红色的致命错误警告,而是一条消息,上面写着“你的 xml 无效”。可能吗?

谢谢,

4

4 回答 4

2
I believe you can catch Throwable  to handle your scenario

     try{
     ....
     ....
     ....
     }catch (Exception e) {
      e.printStackTrace();
     }catch (Throwable t) {
      t.printStackTrace();
    } 
于 2013-10-20T11:03:09.760 回答
1

如果您使用的是 JAXP 验证 API,那么您可以指定一个 ErrorHandler 来接收错误通知。有了这个,您可以更改显示的消息以及显示的位置。

于 2013-10-20T17:00:51.403 回答
1

您可以捕获 Throwable(错误扩展 Throwable):

try {
       //...
} catch(Throwable e) {
        //...
}

请注意,通常建议不要这样做。您可以在此处阅读更多相关信息:何时捕获 java.lang.Error?.

于 2013-10-20T11:03:30.683 回答
1

不能捕获错误,只能捕获异常。

根据 Java 文档:

Error 是 Throwable 的子类,表示合理的应用程序不应尝试捕获的严重问题。大多数此类错误是异常情况。ThreadDeath 错误虽然是“正常”情况,但也是 Error 的子类,因为大多数应用程序不应该尝试捕获它。方法不需要在其 throws 子句中声明任何可能在方法执行期间抛出但未被捕获的 Error 子类,因为这些错误是不应该发生的异常情况。也就是说,为了对异常进行编译时检查,Error 及其子类被视为未经检查的异常。

但是,您仍然可以捕获 Throwable 来捕获任何错误。但不建议这样做。

catch (Throwable e) {
  //e.printStackTrace();
}
于 2013-10-20T10:49:02.440 回答