捕获异常并将其记录在excel表中

时间:2012-06-21 10:03:26

标签: c# .net

我的功能如下:

public int CreateMyTask()
{
    Console.WriteLine("Invoking CreateTask method");
    Console.WriteLine("-----------------------------------");
    m_taskID = taskClient.CreateTask(m_tInstance);
    Console.WriteLine("Task create successfully:ID=" + m_taskID.ToString());
    Console.WriteLine("-----------------------------------");
    return m_taskID;
}

我需要做的是: -

  1. 我必须检查函数是否发生了异常。基本上可以发生任何异常。我们对于发生了什么异常并不感到困扰。我们简单地需要找出是否发生AN异常。让那个例外成为一件事。

  2. 如果确实发生了异常,我必须在我的Excel工作表(D:\ excel.xls)的第2行,单元格10中记录单词“FAIL”,并添加与异常相关的文本,如“Nullreference”异常发生“或”除以零异常“或已发生的任何异常。必须将例外的确切文本复制到第2行,单元格11

  3. 如果没有发生异常,那么我必须在我的Excel工作表的第2行,单元格10中录制一个单词“PASS”。

  4. 有人可以帮助我开始这个吗?对c#来说还是个新手。有些投入可以这样做。

2 个答案:

答案 0 :(得分:1)

你的问题有两个问题。首先,围绕此方法的功能包装try catch块。这是在方法内完成还是在CreateMyTask方法的任何调用周围完成取决于更广泛的结构和代码的使用。为了熟悉try catch的使用,请参考:http://www.dotnetperls.com/catch - 在此链接中,您将使用将写入Excel工作表的方法替换writeline。我需要更多关于您计划写入电子表格的方式的背景信息,但正如建议的那样,谷歌的方式来读取和写入Excel文件。

答案 1 :(得分:0)

public int CreateMyTask()
{
        try
        {
            Console.WriteLine("Invoking CreateTask method");
            Console.WriteLine("-----------------------------------");
            m_taskID = taskClient.CreateTask(m_tInstance);
            Console.WriteLine("Task create successfully:ID=" + m_taskID.ToString());
            Console.WriteLine("-----------------------------------");
            WriteResultInExcel(false, "");
            return m_taskID;
        }
        catch(Exception ex)
        {
            WriteResultInExcel(true, ex.Message);
        }
}


 private void WriteResultInExcel(bool isExceptionalData, string message)
 {
        Excel.ApplicationClass excelApp = new ApplicationClass();
        Workbook workbook = excelApp.Workbooks.Open("D:\\excel.xls", 0, false, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
        Worksheet worksheet = (Worksheet)workbook.Sheets.get_Item(1);
        if(isExceptionalData)
        {
            ((Range)worksheet.Cells["2", "J"]).Value2 = "FAIL";
            ((Range)worksheet.Cells["2", "K"]).Value2 = message;
        }
        else
        {
            ((Range)worksheet.Cells["2", "J"]).Value2 = "PASS";
        }
        workbook.Save();
        workbook.Close(0, 0, 0);
        excelApp.Quit();
 }

确保检查文件“D:\ excel.xls”的存在,并添加对“Microsoft.Office.Interop.Excel”的引用。

不要错过将其添加到您的指令部分:

使用Microsoft.Office.Interop.Excel; 使用Excel = Microsoft.Office.Interop.Excel;