the*_*ian 4 c# try-catch try-catch-finally
我正在尝试try-catch-finally,这样如果mainLog成功创建,但在此之后抛出异常,它将被正确处理掉.但是,如果未成功创建mainLog 并且存在mainLog.Dipose()方法调用,则会出现另一个异常.通常情况下,我会做一个if语句,但DocX.Create()不会返回bool所以我不知道该怎么做.谢谢.
public static string Check_If_Main_Log_Exists_Silent()
    {
        DocX mainLog;
        string fileName = DateTime.Now.ToString("MM-dd-yy") + ".docx";
        string filePath = @"D:\Data\Main_Logs\";
        string totalFilePath = filePath + fileName;
        if (File.Exists(totalFilePath))
        {
            return totalFilePath;
        }
        else if (Directory.Exists(filePath))
        {
            try
            {
                mainLog = DocX.Create(totalFilePath);
                mainLog.Save();
                mainLog.Dispose();
            }
            catch (Exception ex)
            {
                MessageBox.Show("The directory exists but the log does not exist and could not be created. " + ex.Message, "Log file error");
                return null;
            }
        }
        else
        {
            try
            {
                mainLog = DocX.Create(totalFilePath);
                mainLog.Save();
                mainLog.Dispose();
            }
            catch (Exception ex)
            {
                MessageBox.Show("The directory and log does not exist and could not be created. " + ex.Message, "Log file error");
                return null;
            }
            finally
            {
                if(mainLog)
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)