1

可能重复:
C# 明确定义抛出的异常

我有一段这样的Java代码:

public interface ByteSource
{
    public void open() throws IOException;
    public void close();
    public byte readByte() throws IOException;
    public void writeBytes(byte[] bytes) throws IOException;
}

我不是 Java 专家(也不是 .NET 专家!),我想创建一个类似的界面,.NET但我不确定如何处理throws ..... 我想知道这在 Java 语言中是什么意思。

我应该关心它吗?目前最好的事情(或者我能想到的唯一事情)看起来像:

public interface IByteSource
{
    void Open();
    void Close();
    byte ReadByte();
    void WriteBytes(byte[] bytes);
}

.NET 中是否有类似于 java 代码的方法?!也许有些属性?!

4

2 回答 2

7

我不会在意它。受检查的异常没有添加到 .NET 中的原因有很多,但基本上是因为在大多数情况下,它们更多的是障碍而不是帮助。您也许可以用它///记录它可能合理预期会抛出的东西,但将其留给调用链来决定它们是否专门处理。例如:

/// <summary>what this does</summary>
/// <exception cref="System.IO.IOException">some scenario</exception>
void Open();
于 2012-10-03T11:26:31.313 回答
2

在 C# 中,您不必声明代码会抛出哪些异常,因此请忘记这行代码。你的代码很好。

于 2012-10-03T11:26:26.207 回答