我想知道是否有任何方法将函数传递给另一个函数来处理try/catch。我正在研究没有任何异常处理的现有代码库。如何传递函数作为参数?
-1
A
回答
0
2
注:此回答解决问题,而不是标题的文本,因为这个问题似乎并没有与传递函数作为参数做。
确切地知道你想要做什么有点困难,但你肯定可以在你自己的try…catch
块中调用公共方法。
public void ExistingMethod()
{
// bad code
// bad code
throw new NullReferenceException("The previous developers are always the problem.");
}
…
public void MyMethod(ComponentFromOldCode component)
{
try
{
component.ExistingMethod();
}
catch (NullReferenceException nre)
{
// do something
}
catch (Exception ex)
{
// do something
}
}
你无法做的*是将错误处理添加到对该函数的现有调用中。
您可以改为添加一些高级错误处理,这至少会让您有机会记录异常并向用户显示更优雅的失败体验。
*不能合理
+0
神奇的例外文本,先生。 A +。 –
0
查找到Actions。他们将允许您将匿名方法作为参数传递。
但是,我不认为这会帮助你解决你的问题。您可能要重构代码库以进行适当的异常处理。
0
您可以使用Lambda表达式
class Program
{
private static int Sum(int a, int b)
{
return a + b;
}
private static int Multiply(int a, int b)
{
return a * b;
}
private static int GetResult(Func<int, int, int> solver, int a, int b)
{
try {
return solver(a, b);
} catch {
}
return 0; // your default return
}
static void Main(string[] args)
{
var a = 2;
var b = 3;
var sum = GetResult(Sum, a, b);
var multiply = GetResult(Multiply, a, b);
}
在
Lambda表达式(C#编程指南)
http://msdn.microsoft.com/en-us/library/bb397687.aspx
Func键代表
更多信息
相关问题
- 1. 如何传递函数作为参数?
- 2. 当函数作为参数传递时,参数如何传递给该函数?
- 3. 传递函数作为参数传递给另一个函数
- 4. 传递函数数组作为参数
- 5. JavaScript:如何将匿名函数作为函数参数传递?
- 6. 如何将函数作为函数swift的参数传递?
- 7. 传递函数作为python参数
- 8. 传递id作为函数的参数
- 9. lambda函数作为参数传递
- 10. 传递函数作为参数用Clojure
- 11. 将java函数作为参数传递
- 12. PL/SQL传递函数作为参数
- 13. 传递函数作为参数在HAXE
- 14. Javascript:传递函数作为参数
- 15. 传递函数作为参数
- 16. GLib HashTable传递函数作为参数
- 17. 将函数作为参数传递
- 18. 函数作为参数传递
- 19. 传递函数作为参数
- 20. 作为参数传递一个函数?
- 21. 传递$作为函数参数(jQuery的)
- 22. SystemVerilog传递函数作为参数
- 23. 传递函数作为参数
- 24. 传递函数作为参数pthread_once
- 25. 传递javascript函数作为参数
- 26. 将observableArray作为函数参数传递
- 27. Bash:传递函数作为参数
- 28. 的Xquery:传递函数作为参数
- 29. 将va_list作为函数参数传递
- 30. 传递函数作为参数CPP
我觉得这个问题回答沿[面向方面编程]的线谎言(http://en.wikipedia.org/wiki/Aspect-oriented_programming)。看看[PostSharp](http://www.sharpcrafters.com/)。 – Ahmad