【问题标题】:Forcing interface implementation to check for exception [duplicate]强制接口实现检查异常[重复]
【发布时间】:2012-10-03 11:23:05
【问题描述】:

可能重复:
C# explicitly defining what exceptions are thrown

我有一段这样的 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 代码的方法?!也许是一些属性?!

【问题讨论】:

标签: c# java .net exception interface


【解决方案1】:

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

/// <summary>what this does</summary>
/// <exception cref="System.IO.IOException">some scenario</exception>
void Open();

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-05-08
      • 2013-02-19
      • 2014-04-18
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 2016-01-01
      • 2015-10-23
      • 1970-01-01
      相关资源
      最近更新 更多