发布评论
评论(7)
千仐2024-10-27 16:39:37
默认情况下没有什么问题。事实上,我相信它几乎应该总是用于抛出错误以指示开关中的错误值。
我能想到的唯一可能导致您教授做出这样的声明的事情是,他或她相信您的数据应该在达成案例声明之前得到验证。也就是说,如果你编程得好,你的案例将反映每一种意外情况。
好吧,如果是这样的话,那么我们就不需要例外了。异常的整个想法是处理意外情况。如果这是合理预期的,你就会处理它。
因此,请务必在 switch 默认语句中抛出异常。
至于他们内部是如何运作的?我确信有很多可能的实现,但从逻辑上讲,默认情况只是 if..then..if..then..else 长链中的最后一个 else 子句。
千と千尋2024-10-27 16:39:37
关于这个问题的另一种看法:
其他答案基本上基本上是这样说的:“当你切换/区分 X 时,X 的类型允许 X 为 1、2、3 等(整数),或红色、蓝色、紫红色等。 (枚举),一定要处理等等!!”。很明显,不是吗?
另一方面,当您相信 X 作为一个变量,由于程序流的原因,永远不会采用值“etc”时……否则,因为它最终会出现。这是一般建议。
从 Java/Pascal 的角度来看:如果 X 的类型不允许允许“etc”怎么办? (例如,“非常严格”的枚举或范围(对于整数))。也就是说,编译器确保可能的值永远不会是“etc”。它将未处理的情况标记为错误。那就太好了。 :-) 函数式语言具有模式匹配和代数类型,这有点像这样,但我在那里没有相关经验。 :(
回到 Java(和类似的语言),因为您可以实现类型(类),所以您可以实现严格检查,例如通过将“case”作为采用 lambdas/functions/function 的方法调用来执行物体...
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我认为不使用它是一个坏习惯。
:
这是帕斯卡,只是为了证明你的老师错了
I would consider it a bad habit not to use it.
Edit:
This is Pascal, just to prove your teacher wrong