可能有一个类专门用于c#异常处理

本文关键字:用于 异常处理 有一个 | 更新日期: 2023-09-27 18:03:02

我正在VS2015中开发一个windows应用程序我的查询是关于处理系统定义的异常的两种可能的方法:-在任何可能的地方使用try块并处理它-定义一个异常类并写下所有可能的异常(我只关注系统定义的异常,如File Not Found, Null Reference),并在自动处理异常的其他类中继承该类。谁能告诉我哪种方法更好,如果第二种方法更好,如何实现和使用它。我的类已经继承了Form。所以我需要一个接口吗?如果是这样,我可以在哪里实现的方法?任何帮助都是感激的!

可能有一个类专门用于c#异常处理

方法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
}