我在C#和Java中编写了两个相应的代码:
class Class
{
public static void f()
{
throw new Exception("error");
}
}
class Program
{
static void Main(string[] args)
{
Klasa.f();
}
}
class Class {
public static void f() throws Exception {
throw new Exception("error");
}
}
class Program {
public static void main(String[] args) {
try {
Klasa.f();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在Java中,我们不得不在方法之外抛出异常(如果它没有在其中处理)并在使用这种方法时捕获异常。另一方面,C#并没有强迫我们这样做。为什么?哪种方法更好?我们可以将C#推向Java吗?
答案 0 :(得分:0)
由于异常不构成C#中方法声明的一部分,因此任何方法都不会抛出任何异常,而不会声明方法。因此,异常永远不需要处理,因为永远不需要声明它。
这完全取决于设计决策。你可以问一下自己,为什么Java没有Lambda表达式。