我编写了一个函数并在其中进行了异常处理。我还做的是,我创建了一个方法来识别我的函数中是否发生了任何异常。
如果发生异常,它会在第 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();
}