2013-04-25 127 views
1

我有一個非常簡單的工廠方法,它根據傳遞給它的一些值和條件創建模型實例。工廠方法 - 拋出什麼異常

什麼我不確定是做什麼如果工廠不能創建一個基於它receieves的配置模型實例。

第一個問題是,它應該返回false還是null?還是應該拋出異常?

如果它應該拋出一個異常應該是什麼異常。林在PHP在這裏工作(PHP例外列表http://php.net/manual/en/spl.exceptions.php

+1

拋出'InvalidArgumentException'將是我的建議 – 2013-04-25 16:17:15

回答

0

你是誰可以回答這個問題的唯一的人。應該發生什麼不是在任何地方定義。

如果你問我,我寧願拋出一個異常,如果你願意,可以叫它YourFactory_ClassNotFoundException。這將使調用代碼看起來更直接,因爲它不需要測試返回值。


據我所知,因爲我知道有在PHP核心函數和類這個以下共識:

  • false應由遇到一個錯誤,並且不拋出異常的方法被退回。 (並且沒有布爾返回值,如is_file())。預計這些方法將設置errnoerrmsg,以使用戶有機會獲取錯誤消息。

  • 在這種情況下,一些較新的PHP類將拋出Exception。我更喜歡庫代碼的例外。如果它是一個沒有return語句無效方法

  • null返回。這可能是有條件的

+0

我知道,在一定程度上,你是正確的。但是,對於這種情況如何被認爲是最好的,必須有一些共識。感謝您的建議有關的例外 - IM thinkint那也最好在這一點 – 2013-04-25 16:20:32

+0

有無寫了一封關於這幾行。 – hek2mgl 2013-04-25 16:28:58

相關問題