исключение не обнаружено / обработка исключения не работает - PullRequest
0 голосов
/ 16 мая 2018

У меня есть следующий код с обработкой исключений, который не работает:

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 жалуется на наличие слишком большого количества кода.

1 Ответ

0 голосов
/ 16 мая 2018

У меня был parseQuestionsData(File), окруженный try-catch с e.printStackTrace() в catch -Блоке.

Это не могло работать.Я этого не помнил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...