Я использую XML-адаптер JAXB для маршалирования и демонстрации логических значений. Файл XML приложения также будет доступен приложением С#. Мы должны проверить этот файл XML, и это делается с помощью XSD. Приложение С# записывает значение "True" для булевых узлов. Но тот же факт подтверждается нашим XSD, поскольку он позволяет только "true/false" или "1/0". Таким образом, мы сохранили String для булевых значений в XSD и эта строка будет проверена XMLAdapter для маршала и демонстрации с нашей стороны.
XML-адаптер выглядит следующим образом:
public class BooleanAdapter extends XmlAdapter<String, Boolean> 
{
@Override
    public Boolean unmarshal(String v) throws Exception
    {
        if(v.equalsIgnoreCase("true") || v.equals("1"))
        {
            return true;
        }
        else if(v.equalsIgnoreCase("false") || v.equals("0"))
        {
            return false;
        }
        else
        {
            throw new Exception("Boolean Value from XML File is Wrong.");
        }
    }
    @Override
    public String marshal(Boolean v) throws Exception
    {
        return v.toString();        
    }
}
код >
Приведенный выше код работает в нормальных условиях, но когда неверные данные (например: "abcd" или ") считываются из xml файла, тогда" throw new Exception();" не размножается, а процесс Unmarshal переходит к следующему node. Я хочу, чтобы приложение прекращалось, как только генерируется исключение. Кажется, мое исключение съедается. Любая помощь очень ценится.
Как решить эту проблему?