0

简单地说,我不希望这个应用程序收到太多错误,因为它是一个相当受控的环境,并且用户是其他开发人员。

话虽如此,错误迟早会发生,我只是想记录它们并提醒用户我有这种方法尝试尽可能地验证信息,然后尝试将文件从 A 复制到 B。

        try
        {
            File.Copy(source, destination, true);
            return String.Empty;
        }
        catch (Exception ex)
        {
            logOp.AddLog(ex);
            return string.Format("ERROR: {0}{1}{2}", ex.Message, Environment.NewLine, ex.StackTrace);
        }

如果成功,该方法将返回一个空字符串,如果不成功,它会记录异常并将其返回给调用方法以进行演示。

如果我想要最详细的消息/堆栈跟踪,是否需要捕获 File.Copy 可以抛出的每个单独的异常类型,或者只捕获异常工作?我尝试对其进行硬编码以抛出各种异常的新实例,看起来还可以,但我不确定是否有一些我遗漏/违反的编程原则

4

2 回答 2

1

由于您在异常处理程序中所做的一切都是记录,所以我会说不,只需获取异常并记录消息。

如果您尝试从错误中恢复,捕获单个异常将很有用。

于 2013-10-28T20:33:22.490 回答
1

我会保持原样,只捕获基类异常。

像在 logOp.AddLog(ex) 中隐式那样记录 ex.ToString() 应该写入异常的实际类型(这可能是 File.Copy 方法可以在此处的 Exceptions 部分中抛出的异常类型之一)

基于该链接,实际异常的名称应该提供足够的信息,因为您没有尝试从异常中恢复,只是记录它们。

于 2013-10-28T20:36:15.763 回答