http://msdn.microsoft.com/en-us/library/dd997415.aspxTPL अपवाद
लेख मैं ऊपर संदर्भित प्रति हैंडलिंग एक continuatin कार्य में अपवाद को संभालने के लिए कोशिश कर रहा हूँ। उदाहरण मैं ऊपर लेख में हवाला हूँ यह है:
var task1 = Task.Factory.StartNew(() =>
{
throw new MyCustomException("Task1 faulted.");
})
.ContinueWith((t) =>
{
Console.WriteLine("I have observed a {0}",
t.Exception.InnerException.GetType().Name);
},
TaskContinuationOptions.OnlyOnFaulted);
मेरे कोड है:
Task<string> task = Task<string>.Factory.StartNew(() => process.StartTask(this));
task.ContinueWith(CloseDialog, TaskContinuationOptions.OnlyOnFaulted);
StartTask में, मैं सिर्फ उदाहरण की तरह एक त्रुटि फेंक देते हैं। मेरी उम्मीद है कि CloseDialog निष्पादित होगा और मैं कार्य की जांच कर सकता हूं। उदाहरण के अनुसार उस पद्धति के भीतर अपवाद। हालांकि जब मैं अपवाद फेंकता हूं तो कोड बस एक अनचाहे अपवाद के साथ बंद हो जाता है। क्या मुझे कोशिश/पकड़ ब्लॉक का उपयोग करना चाहिए? यदि हां, तो कहाँ? वैसे, मैं हमेशा अपना निरंतर कार्य (CloseDialog) चलाने के लिए चाहता हूं। मैं बस उपयोग कर रहा हूँ। केवलऑनफॉल्ट क्योंकि उदाहरण में दिखाया गया है।