【问题标题】:C#: How to require error handling for a method?C#:如何要求对方法进行错误处理?
【发布时间】:2020-10-26 12:51:25
【问题描述】:

我正在为一个 API 编写一个函数,我只想在 try 语句中调用它,以便开发人员可以处理其自定义异常。

除了在我们的文档中夸大错误处理的使用或使用 #warning 预处理器指令之外,我想知道如果从 try 语句之外调用函数,是否可以在编译时引发错误?

可以这样做吗?

感谢所有帮助。提前致谢!

【问题讨论】:

  • 如果这行得通,我会感到非常惊讶,我肯定会认为这是糟糕的设计。如果你能解释你的情况和原因,我们可以给你更好的选择
  • 我非常怀疑这是可能的。你应该对你的代码负责,你的代码的使用者应该对他们的代码负责。你能做的最好的就是给他们详细的错误和自定义异常,听起来就像你一样。
  • 已检查的异常在 C# 中会很糟糕。想象一下修改一个低级方法以使用一个数组,然后必须将throws IndexOutOfRangeException 添加到它以及直接或间接使用它的每个方法。或者必须将throws DivideByZeroException 添加到使用变量除数直接或间接进行整数除法的任何方法中。
  • 您可以通过在处理错误的方法上使用Func 参数来做一些接近的事情。例如。它会被称为MyAPI(someInputParam, error => { /* code to handle error */ });
  • 有问题的代码是一个抽象的规划系统,开发人员负责自己定义场景描述、代理、域和方法。如果识别出计划中的严重错误,系统将引发异常,例如场景描述中缺少计划所需的对象。开发人员将希望通过在其代理上调用子例程来处理这些异常,以解决手头的问题,例如定位对象。

标签: c# error-handling compiler-warnings preprocessor


【解决方案1】:

我相信您指的是已检查的异常,C# 不支持它们。

在此处查看@Reed Copsey 的答案: 【问题】:No force of exception handling?

【讨论】:

  • 啊,我明白了。真可惜。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
  • 2016-08-18
相关资源
最近更新 更多