2012-01-29 64 views
0

我聽說從屬性getters拋出異常是不合適的,我理解這個基本原理背後的原因。但是,下面的情況我百思不得其解:想象一下你正在寫的意思,以適應多種不同平臺的門面:從屬性Getters中拋出NotSupportedException

public interface IFacade 
{ 
    int SomeProperty { get; set; } 
} 

現在想象平臺XY支持SomeProperty本身,而是該平臺Z沒有。不應該從平臺Z的適配器中將吸取器NotSupportedException扔給適當的方法來告訴用戶該平臺的特定情況下不支持該功能?

+1

這很好。鑑於這是一個界面,你首先需要告訴程序員。 – 2012-01-29 19:08:24

回答

1

只要這種行爲被記錄在案,它就沒有錯。如果您擔心需要處理該例外情況,則可以引入SupportsSomeProperty屬性。但是,這可能會炸燬界面。

1

由於您知道異常無法被捕獲(對此無能爲力,平臺無法支持!),或者如果它被捕獲,則處理,最好退出程序並顯示錯誤消息表示當前平臺不受支持。

異常通常用在可以被捕獲和處理的地方,或者在發生錯誤時被意外拋出。如果發現程序在平臺z上運行的錯誤,則退出程序(如果程序無法繼續)。

相關問題