2013-10-20 45 views
0

当我做DOM XML Schema验证时,当我故意错误的测试文件中出现语法错误时,我收到了此错误。是否有可能在java中捕获致命的xml异常?

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

不过,我要赶这使得它不会把红色的致命错误警告,而不是一个消息,说像“你的XML是无效的。”可能吗?

谢谢,

回答

1

错误不能捕捉,只有例外可以捕捉。

根据Java文档:

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

但是,仍然可以捕获Throwable来捕获任何错误。不过,这并不推荐。

catch (Throwable e) { 
    //e.printStackTrace(); 
} 
+0

还有没有办法做我写的东西? – Umut

2
I believe you can catch Throwable to handle your scenario 

    try{ 
    .... 
    .... 
    .... 
    }catch (Exception e) { 
     e.printStackTrace(); 
    }catch (Throwable t) { 
     t.printStackTrace(); 
    } 
1

您可以赶上的Throwable(错误延伸的Throwable):

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

请注意,它通常建议不要这样做。你可以在这里阅读更多关于它的信息:When to catch java.lang.Error?

1

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

相关问题