2012-01-29 54 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上运行的错误,则退出程序(如果程序无法继续)。

相关问题