簡體   English   中英

打破Java中的循環邏輯

[英]breaking out of a loop logic in Java

我正在學習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語句來檢查變量,該語句為null,然后中斷,但這對我也不起作用。

請幫助我的邏輯。

您僅應在例外情況下使用異常處理。 檢查未初始化的值不是其中之一。 要在Java中檢查null值,只需使用(變量== null)。

您首先必須將null分配給變量,否則也將獲得異常。 請注意,局部變量未初始化為任何默認值,因此DataMaster_MasterCode = 0; 等等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM