выход из цикла логики в Java - PullRequest
1 голос
/ 27 апреля 2011

Я изучаю Java и только начал играть с mysql, и у меня возникла небольшая проблема с некоторой логикой, которая работала в python, и у меня возникли проблемы с конвертацией.

У меня, в основном, есть оператор try, который пытается найти, существует ли запись в базе данных ... Если она тогда хорошо работает, она перемещается, но если запись не существует, то она добавляет ее. Вот мой код

try 
{
    PreparedStatement Findstatement;
    Findstatement = con.prepareStatement(" SELECT DataMaster_MasterCode FROM Allocation WHERE Master_Code = (?) and date = (?)");
    Findstatement.setInt(1, Code);
    Findstatement.setString(2, AllocationDate);
    ResultSet CodeAll  = Findstatement.executeQuery();
    int DataMaster_MasterCode;
    while (CodeAll.next()) 
    {
        DataMaster_MasterCode = CodeAll.getInt("DataMaster_MasterCode");
    }


    System.out.println("Found allocation "  + DataMaster_MasterCode + " already exists for " + Name);

}
catch (Exception e) 
{ //Create statements... }

Проблема в том, что он продолжает переходить к исключению, поскольку переменная DataMaster_MasterCode может не быть инициализированной. Я думаю, потому что Python просто выполняет код по ходу работы, он работает в Python, но, поскольку Java предварительно компилирует его, он видит это как ошибку и пропускает. Если переменная не может быть не инициализирована, я хочу, чтобы она завершилась неудачно и перейти к оператору catch (который создает переменную).

Сейчас он продолжает давать сбой и продолжает создавать (дублировать) записи, потому что он никогда не завершает оператор, чтобы найти сами данные. Я думал о том, чтобы поместить оператор else if, который проверяет переменную как ноль, а затем ломается, но у меня это тоже не сработало.

Пожалуйста, помогите мне с логикой.

Ответы [ 2 ]

5 голосов
/ 27 апреля 2011

Вы должны использовать обработку исключений только для исключительных случаев.Проверка неинициализированного значения не входит в их число.Чтобы проверить нулевое значение в Java, просто используйте (variable == null).

1 голос
/ 27 апреля 2011

Сначала вы должны присвоить переменным значение null, иначе вы также получите исключение. Обратите внимание, что локальные переменные не инициализируются по умолчанию, поэтому DataMaster_MasterCode = 0; и т. Д.

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