可能有一个类专门用于c#异常处理
本文关键字:用于 异常处理 有一个 | 更新日期: 2023-09-27 18:03:02
我正在VS2015中开发一个windows应用程序我的查询是关于处理系统定义的异常的两种可能的方法:-在任何可能的地方使用try块并处理它-定义一个异常类并写下所有可能的异常(我只关注系统定义的异常,如File Not Found, Null Reference),并在自动处理异常的其他类中继承该类。谁能告诉我哪种方法更好,如果第二种方法更好,如何实现和使用它。我的类已经继承了Form。所以我需要一个接口吗?如果是这样,我可以在哪里实现的方法?任何帮助都是感激的!
方法2也是可行的。如果你总是期望出现相同类型的异常,我建议你这样做。
如果被调用的方法可以抛出非常特定的异常,那么最好在抛出异常的地方附近处理它们。
你可以定义一个包装器方法来捕获异常,像这样:
public bool TryExecuteServiceAction(Action a) {
if (a == null) {
throw new ArgumentNullException("a");
}
try {
a();
return true;
}
catch (SecurityAccessDeniedException sade) {
Logger.Error(sade);
return false;
}
}
通过返回包含错误代码、消息等的ResultObject
来扩展此模式,而不是返回bool
。
像这样使用包装器
DoSomethingDto serviceResult = null;
var success = TryExecuteServiceAction(() => serviceResult = _service.DoSomething(command));
if (success) {
// we know that the service call was successful and the DTO has data
// work with DTO ...
}
else {
// e.g. show generic error message to user
}