检查 xml 注释中的异常处理?

发布于 2024-10-16 08:06:08 字数 95 浏览 2 评论 0原文

是否有任何 C# 代码分析工具可以验证 XML 注释中的异常是否在调用链的某个位置得到了处理?

假设只有需要专门处理的异常是 xml 注释的,这将是相当有用的。

Is there any C# code analysis tool that can verify if exceptions that are in the XML comments are handled somewhere up in the call chain?

Assuming only exceptions that need to be handled specifically are xml commented it would be rather useful.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

傲性难收 2024-10-23 08:06:08

我还没有听说过任何 - 因为你不能使用反射来获取已编译程序集中的注释,所以我认为这是不可能的。编译器或代码分析工具可能可能检查任何抛出的(或下游?)异常是否在 XML 注释中得到了正确的注释,但仅此而已。

您可能对 Microsoft Research 的 Spec# 感兴趣。据项目现场介绍:

Spec# 是面向对象语言 C# 的扩展。它扩展了类型系统以包括非空类型和检查异常。它以前置条件和后置条件以及对象不变量的形式提供方法契约。

我想,这已经是你能得到的最接近的结果了。它将执行 Java 所做的事情:强制抛出异常的函数的调用者处理这些异常,或者在其元数据中声明它们自己传播/抛出这些异常,直到异常在某处得到处理。不过,我不知道 Spec# 是否允许您仅检查特定的异常类型。

I haven't heard of any - since you can't use reflection to get at the comments in a compiled assembly, I don't think this is possible. A compiler or code analysis tool could possibly check whether any thrown (or downstream?) exceptions are properly commented in the XML comments, but that's about it.

You might be interested in Spec# from Microsoft Research. According to the project site:

Spec# is an extension of the object-oriented language C#. It extends the type system to include non-null types and checked exceptions. It provides method contracts in the form of pre- and postconditions as well as object invariants.

That, I think, is about as close as you're going to get. It will do what Java does: force callers of functions which throw exceptions to either handle those exceptions or state in their metadata that they themselves propagate/throw those exceptions, until the exception is handled somewhere. I don't know if Spec# will let you check only specific exception types, though.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文