У меня есть следующий код с обработкой исключений, который не работает:
LoadQuestionsDataButton::actionPerformed(ActionEvent)
:
try
{
questions = ParseXml.parseQuestionsData(questionsDataFile);
// only for broken xml-files!
} catch (java.lang.Exception e)
{
JOptionPane.showMessageDialog(mainWindow, "<html><body>The XML-file seems to be corrupt:<br><br>" +
e.getMessage() +
".</body></html>", "Corrupt XML-file.", JOptionPane.ERROR_MESSAGE);
System.out.println("error-message");
return;
} catch (AssertionError e)
{
JOptionPane.showMessageDialog(mainWindow, "<html>The XML-file seems to be corrupt.<br></html>", "Fehler beim Laden der XML-Datei.", JOptionPane.ERROR_MESSAGE);
return;
}
ArrayList<Question> ParseXml::parseQuestionsData(File)
:
if(number == "")
{
Exception e;
System.out.println("before exception");
if(firstQuestion)
e = new Exception("The first question does not contain numbering!");
else
e = new Exception("The Question after <" + lastNumber + "> does not contain numbering!");
System.out.println("after exception creation");
throw e;
}
Когда я загружаю XML-файл с number == ""
, печатаются «до исключения» и «после создания исключения», но появляется диалоговое окно с сообщением об ошибке и «сообщением об ошибке»не!
Также отображается трассировка стека:
before exception
after exception creation
java.lang.Exception: The first question does not contain numbering!
at com.examquestions.Buttons.ParseXml.parseQuestionsData(ParseXml.java:60)
at com.examquestions.Buttons.LoadQuestionsDataButton.actionPerformed(LoadQuestionsDataButton.java:65)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
[...]
трассировка стека на pastebin.com
Я не могу показать большеstacktrace здесь, потому что stackoverflow жалуется на наличие слишком большого количества кода.