我真正喜欢Java中的一个不在C#中的功能是checked exceptions。有没有办法模拟(可能通过stylecop?)或在Visual Studio中启用已检查的异常?
是的我知道很多人不喜欢他们,但我发现他们可以提供帮助。
答案 0 :(得分:14)
据我所知,C#中没有办法检查异常。
不支持该功能(或错误,取决于你如何看待:) :)最好的办法是在方法中添加XML注释,包括它引发的异常,并希望调用代码的人阅读文档。
这样的事情:
/// <summary>
/// This is my method that does stuff.
/// </summary>
/// <exception cref="InvalidOperationException">This stuff can't be done!</exception>
public void DoStuff()
{
// do stuff
}
答案 1 :(得分:2)
我敢打赌你可以使用像PostSharp这样的工具来实现已检查的异常。类似的东西:
[Throws(typeof(MyExpection))]
public void Method()
{
throw new MyException();
}
不确定PostSharp或其他AOP框架中是否存在类似这样的内容(以及.NET设计人员不喜欢检查异常的原因仍然适用)但是我敢打赌它可能会做。
答案 2 :(得分:0)
问题: “有没有办法模拟(也许通过stylecop?)或在Visual Studio中打开检查的异常?” -是:请尝试以下Visual Studio扩展:https://marketplace.visualstudio.com/items?itemName=YoavFrandzel.CheckedExceptions