仅查找托管代码中的显式抛出

Finding Only Explicit Throws In Managed Code

我正在尝试为我的 API 打包遗留服务。在服务中执行 CRUD 操作的域模型会抛出明确的标准异常,如 ArgumentExceptionAggregateException,同时也会通过失败的存储过程隐式抛出它们。我不希望通过包装所有异常来暴露有关数据库或程序的信息,我只想捕获过去开发人员抛出的那些。

捕获显式 throw new ArgumentException() 同时避免从失败的存储过程中抛出隐式 ArgumentException 的最佳方法是什么?

您可能已经注意到,没有一种方法可以只捕捉显式抛出。
解决问题的最安全方法是抛出继承自原始异常的自定义异常。
这样您就可以处理显式抛出并且不会破坏任何现有的 try/catch 语句