0

関数を作成し、その中で例外処理を行いました。また、関数で例外が発生したかどうかを識別するメソッドを作成しました。

例外が発生した場合、行 2 の J セルに PASS/FAIL が記録され、行 2 の K セルに FAIL の場合は例外の詳細も記録されます。

コードを実行すると、Excel シートが FAIL で更新されました (意図的に例外を発生させたため)。しかし、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

これを参照してください-http://social.msdn.microsoft.com/Forums/en/wcf/thread/197707a3-7940-4c91-ab53-15d186201135

また、BehaviorServiceでこれが有効になっていることを確認してください

<serviceDebug includeExceptionDetailInFaults="true" />
于 2012-06-22T06:50:44.840 に答える
0

試す

ex.GetType().Name

また

ex.ToString()

何が入っていて、細胞内の結果が正確に何であるかを教えていただければex.Message、より詳細な回答を差し上げることができます.

于 2012-06-22T06:38:07.847 に答える