没有try-catch块的C#重新抛出异常

时间:2019-05-17 08:01:47

标签: c# exception

没有try-catch块的重新抛出异常

C#中是否有任何选项可以在不使用try-catch块的情况下重新引发异常?

Java 中的示例:

public static void SomeMethod()   throws FileNotFoundException{
    FileReader reader = new FileReader("java.pdf");
}

2 个答案:

答案 0 :(得分:4)

是的,什么都不做。如果没有try-catch块,则异常将使调用堆栈冒泡,直到找到一个为止。

请注意,C#中没有检查过的异常,因此这是默认的隐式行为。

答案 1 :(得分:1)

C#中的 Java 不同,我们不必指定可以在方法中抛出的异常:

    public static void SomeMethod() {
      FileReader reader = new FileReader("java.pdf");
    }

但是,让开发人员/用户知道可以抛出哪些异常是一种良好实践。您可以在记录评论的帮助下进行指定,请参见

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/exception

有关详细信息:

/// <summary>
/// Performs Some Method
/// </summary>
/// <exception cref="System.IO.FileNotFoundException">Thrown when java.pdf not found</exception>
public static void SomeMethod() {
  FileReader reader = new FileReader("java.pdf");
}