如果我有一個接口,這是我添加註釋,以確定具體的會拋出異常,它是確定用於實現類拋出不同異常?不同的實現類可以拋出不同的異常類型嗎?
A(壞)的例子是:
public interface IWidgetWorker {
/// <summary>
/// Do the work required for the specified work id.
/// </summary>
/// <param name="workId">The id of the piece of work to do</param>
/// <exception cref="ArgumentException">Thrown if workId is empty</exception>
public void DoWork(Guid workId);
}
public class DatabaseWidgetWorker : IWidgetWorker {
public void DoWork(Guid workId) {
// throw some database related exception
}
}
public class WebWidgetWorker : IWidgetWorker {
public void DoWork(Guid workId) {
// throw some web related exception
}
}
也許我添加WidgetWorkerException
類?我在哪裏記錄實施類可能拋出的具體異常?
.net框架做到這一點:'IDbCommand.ExecuteNonQuery'只定義InvalidOperationException,而'SqlCommand.ExecuteNonQuery'也可以拋出一個SqlException異常。 – Heinzi 2009-11-19 11:02:34