0

我听说从属性获取器那里抛出异常是不合适的,我理解这个理由背后的原因。然而,下面的情况让我很困惑:想象你正在编写一个旨在适应几个不同平台的外观:

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

现在想象一下该平台X和本机Y支持SomeProperty,但该平台Z没有。不应该NotSupportedException从 getter 中的 platformZ适配器中抛出正确的方法来告诉用户该平台的特定情况下不支持该功能吗?

4

2 回答 2

1

由于您知道无法捕获异常(您对此无能为力,不支持平台!),或者如果捕获到异常则可以处理,最好退出程序并显示一条错误消息,说明不支持当前平台。

异常通常用于可以捕获和处理的地方,或者在发生错误时意外抛出。如果您发现程序在平台上运行的错误z,则退出程序,如果它不能继续。

于 2012-01-29T18:44:01.500 回答
1

只要记录了这种行为,就没有任何问题。如果您担心处理异常的必要性,您可以引入SupportsSomeProperty属性。但是,这可能会炸毁界面。

于 2012-01-29T18:50:49.023 回答