C# 编写发生抛出时将发生的自定义函数

C# 编写发生抛出时将发生的自定义函数,c#,C#,是否有可能编写一个自定义函数,该函数在每次抛出exeption时都会发生,而无需在c#中编写try和catch 更新 我想在我的函数中得到这个例外,我会检查这个例外。 如果我写try-and-catch,catch将捕获exection。 但我不认为会有这样的情况,那一页将打破,因为不会有尝试和捕捉。 在这种情况下,我想转到基本功能。要么是像Post Sharp这样的产品(我想),要么是更具侵入性的产品。每个调用都可以封装在一个匿名函数中,该函数可以为您处理所有异常。然后你可以在这个处理器里做任

是否有可能编写一个自定义函数,该函数在每次抛出exeption时都会发生,而无需在c#中编写try和catch

更新

我想在我的函数中得到这个例外,我会检查这个例外。 如果我写try-and-catch,catch将捕获exection。 但我不认为会有这样的情况,那一页将打破,因为不会有尝试和捕捉。
在这种情况下,我想转到基本功能。

要么是像Post Sharp这样的产品(我想),要么是更具侵入性的产品。每个调用都可以封装在一个匿名函数中,该函数可以为您处理所有异常。然后你可以在这个处理器里做任何你想做的事情。不过,这需要将该样式应用于所有希望处理该问题的公共方法

例如:

public string GetSomeData() {
  return Run(() => { ...some code...  return "my result"; });
}

在Run方法中,您可以处理所有try-catch或其他任何操作。

您希望该函数做什么?ie您是希望从错误所在的位置恢复执行,还是希望在程序死亡之前记录一些内容?在程序的Main方法中使用try-catch可以捕获抛出的每个异常,但是很难说这是否能解决问题。Asp.net具有类似的处理程序,您可以为这些处理程序编写方法,这些方法将在任何未捕获的异常上运行。在任何时候都可能抛出异常。您需要了解捕获异常并继续执行的含义,或者是否应该失败。唯一一次我真的认为通用的“一网打尽”有用的时候是在重新引用之前记录东西的时候,但即使这样,如果我不考虑具体的上下文就这么做的话,我可能会怀疑我的设计是否真的很好。