gpt4 book ai didi

c# - 避免使用自定义 ErrorHandler 类的 Try Catch 语句 - C#

转载 作者:太空宇宙 更新时间:2023-11-03 17:30:39 25 4
gpt4 key购买 nike

我有一个公开一些功能的类,我想确保异常将由自定义 ErrorHandler 类处理。

目前我可以通过每个方法的 try/catch 语句来实现这一点,并通过那里的错误处理程序处理异常。

我的问题是是否有更好的方法/设计模式来做到这一点。

代码:

public class BasicErrorHandler
{
public void ProcessException(Exception ex)
{
//Does error handling stuff
}
}

public class Manager
{
BasicErrorHandler _errorHandler;

public Manager()
{
_errorHandler = new BasicErrorHandler();
}

public void MethodA()
{
try
{
//Does Something
}
catch(Exception ex)
{
_errorHandler.ProcessException(ex);
}
}

public void MethodB()
{
try
{
//Does Something Else
}
catch(Exception ex)
{
_errorHandler.ProcessException(ex);
}
}
}

最佳答案

符合DRY principles ,您可以将您的 try...catch 逻辑包装到自己的方法中,该方法采用要执行的实际工作的谓词:

public class Manager
{
BasicErrorHandler _errorHandler;

public Manager()
{
_errorHandler = new BasicErrorHandler();
}

public void MethodA()
{
DoWork( () => {
// do something interesting here
});
}

public void MethodB()
{
DoWork( () => {
// do something else interesting here
});
}

private void DoWork(Action action)
{
try
{
action();
}
catch(Exception ex)
{
_errorHandler.ProcessException(ex);
}
}
}

关于c# - 避免使用自定义 ErrorHandler 类的 Try Catch 语句 - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32371461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com