0

我编写了一个函数并在其中进行了异常处理。我还做的是,我创建了一个方法来识别我的函数中是否发生了任何异常。

如果发生异常,它会在第 2 行的 J 单元格中记录 PASS/FAIL,如果它是第 2 行的 K 单元格中的 FAIL,则还记录有关异常的详细信息。

当我运行我的代码时,excel 工作表被更新为失败(因为我故意发生了异常)。但是,当我打开我的 Excel 表时,我发现第 2 行的 J 单元格包含 FAIL,第 2 行的 K 单元格包含“异常”

理想情况下,我希望第 2 行的 K 单元格包含我的异常的确切文本,例如“在代码中发现 DivideByZeroException”之类的东西。

我发布了我的代码。有什么错误吗?我错过了什么吗?

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("C:\\myexcelsheet.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();
    }
4

2 回答 2

0

尝试

ex.GetType().Name

或者

ex.ToString()

也许如果你能告诉我们里面有什么ex.Message以及你在单元格中的结果到底是什么,我可以给出更详细的答案。

于 2012-06-22T06:38:07.847 回答
0

参考这个 - http://social.msdn.microsoft.com/Forums/en/wcf/thread/197707a3-7940-4c91-ab53-15d186201135

还要确保您已在行为服务上启用此功能

<serviceDebug includeExceptionDetailInFaults="true" />
于 2012-06-22T06:50:44.840 回答