为什么 Java 的 “throws” 子句(在方法声明中)没有包含在 C# 中?

2022-09-01 21:46:05

为什么 Java 的 “throws” 子句(在方法声明中)没有包含在 C# 中?


答案 1

Anders Hejlsberg(首席C#架构师)在这次采访中解释了这一点:

http://www.artima.com/intv/handcuffs.html


答案 2

(除了帕特里克有些明确的答案。

Java中检查的异常是一个非常有争议的问题。我曾经喜欢它们,在编写C#时非常想念它们。感觉就像我在开车时没有系安全带。现在,他们惹恼了我...因为虽然它们在理论上听起来像是一个好主意,但它们确实给我带来了很多悲伤,但没有提供太多切实的好处。我不记得曾经在C#代码中遇到一个错误,检查异常可以拯救我。这并不是说它不可能发生,但它没有发生在我身上。

令人讨厌的是,在某些方面,它仍然感觉C#太松懈了 - 但是Java的方法并不完全正确。这就像有一个更好的解决方案等待被发现,Java的尝试是一个很好的实验,但它并没有完全奏效。