如何在c#console app中以正确的方式处理异常

时间:2017-11-12 12:14:28

标签: .net c#-4.0 exception-handling

我有一个小型控制台应用程序,将在一天的不同时间间隔安排,此控制台应用程序将从ftp下载文件。 我有一个名为BatchProcessor的类,它从ftp下载文件,根据供应商类型解压缩它们,将它们放入不同的供应商文件夹,然后读取并存储到SQL Server数据库中。

我需要一些建议,我正在做的事情是对还是错,因为我需要在任何阶段捕捉异常....

以下是代码框架。 的 Program.cs的

 class Program
    {
        static void Main(string[] args)
        {
var batchProcessor = new BatchProcessor();
            batchProcessor.Start();
        }
    }

这是BatchProcessor类

public class BatchProcessor
{
    public bool Start()
    {
        try
        {
            var result = Connect();
            if (!result) return false;

            result = SearchLatestFiles();
            if (!result) return false;

            result = DownloadFiles();
            if (!result) return false;
        }
        catch (Exception)
        {

            throw;
        }

    }

    public bool Connect()
    {
        try
        {
            // 1. Connect to FTP
        }
        catch (Exception)
        {
            throw;
        }

    }

    public bool SearchLatestFiles()
    {
        try
        {
            // 1. Look for the latest fils
        }
        catch (Exception)
        {

            throw;
        }

    }

    public bool DownloadFiles()
    {
        try
        {
            // 1. Latest files found so download them.
        }
        catch (Exception)
        {

            throw;
        }

    }
}

1 个答案:

答案 0 :(得分:0)

由于应用程序将无人值守运行,因此诊断错误的最佳方法是部署某种日志记录。我建议使用log4net作为Nuget包。它易于安装和配置,在抛出错误之前,您应该记录错误消息和堆栈。 每天查看这些日志的好习惯。 还有一件事:你在课堂上抛出咳嗽错误,但是主要不会处理这些错误 - 这会导致应用程序崩溃和异常终止。

祝你好运