我正在閱讀此代碼審查問題here和由BalusC教程。在那裏我發現異常類被擴展了。爲什麼要在DAO中擴展異常?
它的需求是什麼?我沿着client layer should not know SQLExecption
的方向讀了一些東西,但我不確定我是否理解它。
你能說明爲什麼要制定專門的例外嗎?如果我的DAO方法沒有throws
並且客戶端代碼在try-catch
中,該怎麼辦?
我正在閱讀此代碼審查問題here和由BalusC教程。在那裏我發現異常類被擴展了。爲什麼要在DAO中擴展異常?
它的需求是什麼?我沿着client layer should not know SQLExecption
的方向讀了一些東西,但我不確定我是否理解它。
你能說明爲什麼要制定專門的例外嗎?如果我的DAO方法沒有throws
並且客戶端代碼在try-catch
中,該怎麼辦?
因爲DAO可能是今天扔明天SQLException
,如果你想改變DAO層寫入文件時,它可能會導致FileNotFoundException
,所以躲在底層的東西,你展示給你的客戶什麼事情他們(定製業務明智的除外)
非常簡潔,重點突出!在提出簡單的問題之前,我應該再投入更多努力。 –
我進一步說,它不應該拋出任何'CheckedException'子類期! –
猜猜以下的壞處:拋出新的OhShitSomethingBadHappenedButIWontTellYouSpecificlyWhatException()',將其應用於您的問題,然後刪除您的問題。 –
@JarrodRoberson這真是一個可怕的消息給客戶:) –
這是幽默的好用處,以獲得點! –