2012-04-25 56 views
2

我來到由C世界,在那裏,我們用「定義」來定義不同的返回值,從C函數的返回值,就像這樣:正確的Java API返回值?

#define RETURN_SUCCESS 0 
#define RETURN_ERROR -1 

int myFunc() 
{ 
    if(...) return(RETURN_SUCCESS); 
    else if(...) return(RETURN_ERROR);    
} 

這是如何在Java中完成的,正確的方法是什麼?

假設我有:

public MyObject findMyObject() 
{ 
    MyObject tempObject = search(); 

    if(tempObject.type == myType) 
    { 
     return tempObject; 
    } 
    else 
    { 
     return null; 
    } 
} 

它是確定返回null

有沒有更正確的方法呢?

回答

4

使用返回碼來指示Java中的錯誤是一種反模式。您應該使用例外。

如果錯誤是由於編程錯誤(無效參數,錯誤狀態)引起的,請拋出未經檢查的異常實例。

當錯誤是由於環境中出現問題(無法連接到服務器,無法找到所需文件)時,拋出檢查的異常。

1

返回符合您定義的規範的東西總是可以的。因此,如果您在文檔(javadoc和測試)中定義了哪些情況可能導致返回null,那麼您可以毫不費力地返回它。

您還必須明白,被錯誤代碼人質(如C代碼)並不是Java中最好的策略。有些人甚至認爲它是反模式。使用異常更爲常見。鑑於您是Java新手,請考慮閱讀教程http://docs.oracle.com/javase/tutorial/essential/exceptions/以獲取更多信息。