2012-03-09 20 views
-4

如果找不到必須找到的返回值,則返回一個異常。返回值的方案

如果沒有被發現價值有時候預期,我做的,如果(STR時返回null(這將避免一個有效的字符串的假設!=「」)

是一個方法,這些有效的返回情況下,其返回一個字符串?

感謝

+0

嗯...有沒有方法做你想要它做什麼?如果是這樣,是的,這是有效的。 – Msonic 2012-03-09 16:26:02

+0

如果沒有找到值,我會返回一個空字符串。然後,只需使用if(foo.Length> 0)檢查返回的字符串的長度。或者,您可以使用String.IsNullOrEmpty(foo)來捕獲這兩個值。這些都比str!=「」更好。 – DOK 2012-03-09 16:31:26

+0

是的,我總是喜歡string.IsNullOrEmpty,並使用它。 – dotnetdev 2012-03-09 16:41:17

回答

1

我會親自避免以這種方式使用例外程序流程。例外情況應保留在無法繼續的情況下。

另外,對於字符串測試我使用string.IsNullOrEmpty

+1

我們沒有足夠的信息來知道未找到的值是否表示應該停止處理的重大錯誤(在這種情況下,例外情況是適當的),或者是合法的情況(在這種情況下它不會) 。 – 2012-03-09 16:41:20

+0

當然,但我寧願拋出請求返回值的代碼,而不是檢索它的代碼。因人而異。 – Cronan 2012-03-09 17:14:57

+1

這取決於場景。我們這裏根本沒有足夠的信息。如果它總是*錯誤,爲什麼強制檢查每個呼叫者?如果找不到文件,你想讓'File.Open'返回'null'嗎? – 2012-03-09 17:17:29

0

這完全取決於應用程序的設計,但在(非常)廣義上說,是的,這些返回值是有意義的。

然而,在這兩種情況下,確保你記錄所有的迴歸案例清楚。