gpt4 book ai didi

.net - CodeContracts 应该取代常规的 ArgumentExceptions 吗?

转载 作者:行者123 更新时间:2023-12-02 00:36:15 25 4
gpt4 key购买 nike

我可以开始使用 CodeContracts 而不是:

if (XXX == Y)
throw new ArgumentException("bla bla");

如果我开发了一个库,而我的库用户不使用 CodeContracts,它会如何工作?

最佳答案

假设使用代码契约的代码通过二进制重写器运行,它会像您发布的代码一样抛出异常。重写者遍历代码并用参数检查等替换契约(Contract)代码。这有点像面向方面的编程。在你编译它之后,它会注入(inject)代码来为你处理情况。

如果他们不使用代码契约(Contract),他们将无法获得执行静态分析的好处,静态分析旨在查看契约(Contract)并警告他们可能会根据契约(Contract)和代码出现错误。

Code Contracts

关于.net - CodeContracts 应该取代常规的 ArgumentExceptions 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4490857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com