【发布时间】:2014-11-11 19:28:02
【问题描述】:
我用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 一样工作吗?
【问题讨论】:
-
就我个人而言,虽然有时很烦人,但我更喜欢 Java 的方法,因为它是声明性的,您提前知道方法可能会做什么并控制您如何处理它 - 恕我直言
-
我也是这么认为的,所以我想知道是否有可能在 C# 中获得这种功能......
-
为什么?因为语言是由不同的人开发的。哪一个?你最舒服的那个。推动 C# 像 Java 一样工作?改用java代码。顺便说一句,这个问题非常广泛且基于意见。如果您想要好的答案,请专注于一点(而不是“为什么 X 会这样工作?”,因为我们不知道他们的开发过程中发生了什么)。
-
苹果和橙子哪个更好?
-
不包括 C# 中等效的 Java 检查异常以及已在 SO 上多次讨论过的解决方法。链接的duplicate 将为您提供The Trouble with Checked Exceptions Anders Hejlsberg 的讨论链接。
标签: java c# exception exception-handling try-catch