2015-07-05 22 views
1

對不起,因爲我不知道如何解釋簡單的問題。Java在單獨的類中進行驗證

我有一個類,一個靜態函數,返回該類的數組。 E.g

//returns CustomStack[] 
CustomStack.createCustomStacks({{1,2},{3,4}}) 

然後,我有想要使用此靜態函數用於其他目的一個單獨的類。我遇到的問題是決定如何處理錯誤和異常。

因此,考慮在另一個單獨的類此功能:

public boolean StackConfirmer (CustomStack[] myCustomStacks) { 
    .... 
} 

如何改變這種功能/的CustomStack.createCustomStacks,這樣我也可以處理錯誤的輸出?如果我還不清楚,我可以根據需要進行澄清/編輯。道歉英語不是我的第一語言。像我一樣使用null?我使用-1?

編輯:這是一個有點更詳盡的代碼:

+0

你想要處理錯誤/異常? – Arpit

回答

0

我會建議使用-1作爲數組中的第一個元素(假設它永遠不會有-1沒有一個錯誤)。這將是您的標誌,指出發生了錯誤,然後您可以將數組填充到特定的長度以傳達錯誤的性質。即如果數據不好,則由{-1,0}組成,如果數據太多,則爲{-1,0,0}。

+0

所以這個讓我困惑的主要原因是,我正在傳遞-1作爲我之前宣佈的CustomStack []的一部分?這不會導致任何錯誤? **雙編輯或者,也許我應該超越該方法? – SuYoung

+0

不好的做法,學會處理異常,而不是 –

+0

你能澄清「不好的做法」嗎?我知道它可能不是標準的,但它有什麼「壞」? – lprekon

0

您可以嘗試創建自己的Exception類,然後將其放入你的靜態方法,例如: 「CustomStackException extends Exception」,然後處理裏面的特定潛在問題。只是一個建議,它會很乾淨。

0

從你的描述我想你有這樣的

class SeparateClass{ 
    public boolean StackConfirmer (CustomStack[] myCustomStacks) { 
     int[][]x={{1,2},{3,4}}; 
     CustomStack.createCustomStacks(x); 
     return true; 
    } 
} 

class CustomStack{ 
    static CustomStack[] createCustomStacks(int[][]x){ 
     return null; 
    } 
} 

代碼說,在你的createCustomStacks方法要確保沒有null值作爲函數輸入傳遞。您可以拋出一個異常,由主叫方SeparateClass.StackConfimer()處理。

爲了給你一個想法,這是你應該如何更新代碼

class SeparateClass{ 
    public boolean StackConfirmer (CustomStack[] myCustomStacks) { 
     int[][]x={{1,2},{3,4}}; 
     try { 
      CustomStack.createCustomStacks(x); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return true; 
    } 
} 

class CustomStack{ 
    static CustomStack[] createCustomStacks(int[][]x) throws Exception{ 
     if(x==null)throw new Exception(); 
     return null; 
    } 
} 

注意,我決定把通用異常對象,只是因爲這是一個示例代碼給你的第一個想法。有很多更具體的例外,你可以使用,或者你可以通過擴展定義你的擁有者例外

相關問題