में पकड़ा नहीं जा रहा अपवाद मेरे पास कोशिश, पकड़ और आखिरकार ब्लॉक के साथ एक फ़ंक्शन है। यदि कोई अपवाद पकड़ा जाता है, तो मैं उस अपवाद के कुछ पैरामीटर जैसे कि इसके त्रुटि कोड, त्रुटि विवरण संदेश और संदेश को पकड़ता हूं और इसे एक्सेल फ़ाइल में प्रिंट करता हूं। नीचे दिए गए प्रासंगिक कोड पोस्टिंग कर रहा हूँ: उस समय की तरहकैच ब्लॉक
catch(Exception ex)
{
ExcelRecorder(ex.Message);
}
public void UpdateGroup(String strSiteID, String strGroup, int row)
{
try
{
Console.WriteLine("UpdateGroup");
Excel1.MWMClient.MWMServiceProxy.Group group = new Excel1.MWMClient.MWMServiceProxy.Group();
group.name = "plumber";
group.description = "he is a plumber";
Console.WriteLine(groupClient.UpdateGroup(strSiteID,group));
ExcelRecorder(0, null, null, row);
}
catch (System.ServiceModel.FaultException<DefaultFaultContract> ex)
{
ExcelRecorder(ex.Detail.ErrorCode, ex.Detail.Message, ex.Message, row);
}
finally
{
System.GC.Collect();
}
}
public void ExcelRecorder(int error, string detailmessage, string message, int row)
{
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"D:/WebServiceTestCases_Output.xlsx");
Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1];
Excel.Range xlRange = xlWorksheet.UsedRange;
if (!string.IsNullOrEmpty(message))
{
((Range)xlWorksheet.Cells[row, "M"]).Value2 = "FAIL";
((Range)xlWorksheet.Cells[row, "N"]).Value2 = error;
((Range)xlWorksheet.Cells[row, "O"]).Value2 = detailmessage;
((Range)xlWorksheet.Cells[row, "P"]).Value2 = message;
}
else
{
((Range)xlWorksheet.Cells[row, "M"]).Value2 = "PASS";
((Range)xlWorksheet.Cells[row, "N"]).Value2 = "";
((Range)xlWorksheet.Cells[row, "O"]).Value2 = "";
((Range)xlWorksheet.Cells[row, "P"]).Value2 = "";
}
xlWorkbook.Save();
xlWorkbook.Close(0,0,0);
xlApp.Quit();
}
समस्या है, पहले मैं कोड का एक टुकड़ा हो रही थी, सभी अपवादों को पकड़े जाने दिया गया था। लेकिन, बाद में आवश्यकता बदल गई क्योंकि मुझे त्रुटि विस्तार कोड और त्रुटि विस्तार संदेश भी कैप्चर करने की आवश्यकता थी। इसलिए, मैंने पकड़ने के साथ अपना पकड़ ब्लॉक बदल दिया (System.ServiceModel.FaultException पूर्व) क्योंकि यह मुझे उन paramaters लाने के लिए अनुमति दी। लेकिन अब, कैच ब्लॉक में कुछ अपवाद नहीं पकड़े जा रहे हैं। मैं अपना कैच ब्लॉक कैसे बदल सकता हूं ताकि मैं सभी अपवादों को पकड़ सकूं?
ठीक है आप कई पकड़ ब्लॉक प्राप्त कर सकते हैं। – V4Vendetta