【发布时间】:2015-07-18 07:51:45
【问题描述】:
CLS 比 CLR 更具限制性,它允许您抛出和捕获任何类型的对象(甚至是值类型)。为什么?
如果某些不符合 CLS 的代码在被符合 CLS 的代码调用时抛出非异常派生对象,会发生什么情况?
更新 @Marton 回答的第二个问题。仍然想知道为什么。
【问题讨论】:
-
应禁止不解释就投反对票
-
存在 CLS 规则,因此用一种语言编写的代码抛出的异常可以被另一种语言编写的代码合理地捕获。 CLI 规范不排除它可能在某种晦涩的语言中有用以抛出其他东西的可能性。当然,您将很难找到这种语言的示例。发生的事情有点明显,程序崩溃了,无法捕获或诊断异常。
-
原来不是那么明显,对吧?