有人能告訴我爲什麼只有catch子句中的消息框FileNotFoundException即使在異常是IO-或JDOMException時也顯示出來?爲什麼java忽略這些catch子句中的相關消息框? thx!多個catch子句,每個都有自己的消息框
public void SetWurzel() {
builder = new SAXBuilder();
xmlFile = new File(Pfad);
try {
document = (Document) builder.build(xmlFile);
}
catch (FileNotFoundException e){
JOptionPane
.showMessageDialog(
null,
"Die Datei konnte nicht gefunden werden. Bitte überprüfen Sie den Pfad"
+ " auf Korrektheit.");
}catch (IOException e) {
JOptionPane
.showMessageDialog(
null,
"Bitte prüfen Sie die Zugriffsrechte auf Ihre Datei und geben "
+ "Sie diese gegebenenfalls frei. ");
} catch (JDOMException e) {
JOptionPane
.showMessageDialog(
null,
"Bitte Prüfen Sie die Struktur der einzulesenden XMLDatei auf Fehlern"
+ " und fehlende Elemente.");
}
Wurzel = document.getRootElement();
}
你是說當在'try'塊中拋出JDOMException時,最後一個'catch'似乎沒有被執行?你有調試執行嗎? –
假設我有一個xml文件。由於一些訪問權限或更改權限,我無法讀取該文件,並期望看到IOException。所以我也期待看到相關的消息框。取而代之的是FileNotFoundException的catch子句中的消息框,這是沒有意義的。因爲路徑是正確的,並且文件在那裏。 JDOMException也是如此。 – melar
是的,它是有道理的:看看@ rolfl的答案:catch塊不會按順序執行,而是按優先級執行。而'FileNotFoundException'意味着文件不存在或者由於某種原因無法訪問。 –