當我做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