![]() |
1
42
当然,有一种方法
鉴于 Unconstrained Melody …
…好像是新的
客户是否需要将其与BCL异常区分开来?客户什么时候会不小心用香草精打电话给这个?
|
![]() |
2
23
我会避免不支持例外。此异常在未实现方法且有一个属性指示不支持此类型操作的框架中使用。它不适合这里 我认为invalidOperationException是您可以在这里抛出的最合适的异常。 |
![]() |
3
12
对于无效的类型参数,不应在运行时引发泛型编程。它不应该编译,您应该有一个编译时强制。我不知道什么
更新 如果你 必须 抛出,我投票赞成InvalidOperationException。原因是泛型类型 参数 与(方法)参数相关的错误集中在ArgumentException层次结构周围。然而, recommendation 关于争论,例外情况是
至少有一次信仰的飞跃,那就是 方法 参数建议也适用于 通用的 参数,但在系统中没有更好的例外层次结构imho。 |
![]() |
4
9
我会用不支持的例外,因为这就是你所说的。除特定枚举以外的其他枚举是 不支持 . 当然,这将在异常消息中更清楚地说明。 |
![]() |
5
8
我会去
|
![]() |
6
3
我不支持扩展。 |
![]() |
7
3
显然,微软使用
所以,我认为至少在Microsoft代码中,可以安全地假定使用
希望它能一劳永逸地解决问题。 |
![]() |
8
2
在任何有问题的情况下,都应该抛出定制的异常。不管API用户需要什么,自定义异常总是可以工作的。如果开发人员不关心,他可以捕获任何一种异常类型,但是如果开发人员需要特殊处理,他将是sol。 |
![]() |
9
1
从NotSupportedException继承如何?虽然我同意@mehrdad的说法,但我听到你的观点,它似乎并不完美。所以继承自NotSupportedException,这样,针对API进行编码的人仍然可以捕获NotSupportedException。 |
![]() |
10
1
我总是提防编写自定义异常,纯粹是因为它们不总是被清晰地记录下来,如果命名不正确,就会引起混乱。 在本例中,我将为标志检查失败抛出一个argumentexception。这完全取决于个人喜好。我看到的一些编码标准甚至定义了在这样的场景中应该抛出哪些类型的异常。 如果用户试图传递一个不是枚举的东西,那么我将抛出一个InvalidOperationException。 编辑: 其他人提出了一个有趣的观点,即这是不支持的。对于NotSupportedException,我唯一关心的是,通常这些异常是在“暗物质”被引入系统时抛出的,或者换句话说,“这个方法必须进入这个接口上的系统,但在2.4版之前我们不会打开它。” 我还看到NotSupportedExceptions作为一个许可例外被抛出,“您正在运行此软件的免费版本,不支持此功能”。 编辑2: 另一个可能的:
使用作为枚举数的无效参数时引发的异常。 |
![]() |
11
1
我也会投票支持InvalidOperationException。我做了一个(不完整的)流程图 .NET exception throwing guidelines 基于 Framework Design Guidelines 2nd Ed. 如果有人感兴趣的话,请稍等。 |
![]() |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 2 年前 |
![]() |
milczi · Swift通用无强制展开向下投射 6 年前 |
![]() |
bugs · Typescript-泛型类型扩展自身 6 年前 |
![]() |
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 6 年前 |
![]() |
Blankdud · 具有默认数据的通用对象创建方法 6 年前 |
![]() |
Tim Hutchison · 从泛型对象列表中读取泛型值 6 年前 |