[英]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.