.NET是否应该为程序员提供可选为抽象方法定义一组“已检查异常”的能力,或可选一般?
我理解检查异常的原因不是.NET的一部分,我不希望语言范围内没有强制检查异常,但为什么不提供在某些情况下有用的可选语法?请参考以下示例,或者如果您只是想指定某些代码处理某些异常:
public abstract class AbClass
{
public abstract ISomeInterface AbMethod() throws AbMethodException;
public void LargerMethod()
{
// some processing
try
{
ISomeInterface data = AbMethod();
}
catch(AbMethodException ex)
{
// some special code
}
// some more processing
}
}
现在需要AbMethod()的实现来抛出AbMethodException。
public class MyAbClass : AbClass
{
public ISomeInterface AbMethod() throws AbMethodException
{
// attempt to create data
if(dataAlreadyExists)
{
throw new AbMethodException();
}
else
{
// create data
ISomeInterface obj = (ISomeInterface)(new object());
obj.WriteData();
return obj;
}
}
}
这会对您有用吗?想法?
答案 0 :(得分:2)
如果你的一个接口方法的正确实现是为了解决NotImplementedException,那么这可能会失败。在这种情况下,添加“已检查的异常”只会阻止需要的人实现该接口的能力。