重复异常处理

本文关键字:异常处理 | 更新日期: 2023-09-27 17:49:37

我有一个关于重复异常处理的问题…

例如:Webmethods有try-catch块,try块里面有执行代码。这些try-catch块对于每个webmethod都是相同的。

是否有可能使它更容易,更易于维护,而不重复相同的代码?我知道方面的问题,但还有其他解决办法吗?

代码语言是c#,但我认为是通用解决方案。

重复异常处理

使用函数式编程原理,您可以传递您希望以某种方式执行的操作或方法。

在c#中,你可以创建一个这样的方法来标准化你的代码:
public void HandleExceptions(Action action)
{
    try
    {
        action();
    }
    catch (ExceptionA exa)
    {
    }
    catch (ExceptionB exb)
    {
    }
    finally
    {
    }
}

,并像这样命名:

HandleExceptions(() =>
{
    //insert code to be handled by try/catch structure
    Method1();
});
HandleExceptions(() =>
{
    Method2();
});