2013-07-01 41 views
0

我有一個try-catch塊;在try裏面,我從控制檯讀取變量N並初始化一個Array[N]。我稍後需要使用Array。如果我在try區塊外使用它,則會收到錯誤初始化try塊內的變量,一種解決方法?

java variable may not have been initialized

我明白了,但是我該怎麼辦,在try塊內寫下整個程序,真的嗎?這種程序的可讀性更差,我在代碼中使用try,其中沒有exceptions是可能的。有沒有解決方法?我嘗試了一個boolean變量,它檢查是否存在異常,並稍後在if聲明中使用它 - 沒有結果。

+0

只需在try塊之前聲明數組或在塊中使用它。 –

回答

7
Object[] yourArray = null; 
try { 
    ... 
} 
0

你基本上有兩種選擇:

  1. try catch塊裏面的代碼你建議
  2. 初始化數組nulltry catch塊外面,後來檢查您的數組不null並已初始化
0

變量聲明在一個塊只能在該塊中訪問。 您可以定義數組try塊外面,然後在try塊使用

String [] arr = null; 
try{ 
    // assign value here 
}catch(Exception e){ 
} 
0

你應該聲明變量,如果外面的try ... catch ...子句

int n = null; 
try{ 
    some code goes here 
    . 
    . 
    . 
catch(Exception e){ 
} 

記得思考關於變量範圍。 嘗試catch子句或方法,或走了進去{}任何其他內聲明的變量或對象是不可見的類的其他部分

希望這是有幫助的

2

有例外無處不在,即使在不會調用任何方法的行。

你的問題是但Java的checked異常是,尤其是初學者失敗的另一個例如:他們似乎是強迫你寫在try-catch,甚至誤導你以爲這是唯一的可能會出現的例外。

try-catch塊必須覆蓋必須執行的代碼的精確區域,條件是每行上的所有內容都已正常完成,並且共享相同的錯誤處理模式。這與檢查/未檢查的異常完全無關。

因此,在不知道您的要求是什麼的情況下,您無法給出具體的建議,以便將嘗試和抓取放在哪裏。