मैं अपवाद आवेदन ब्लॉक (EHAB) लॉग में Exception.Data संपत्ति से मान लिखने के लिए हैंडलिंग कैसे मिलता है?Exception.Data जानकारी EntLib लॉग में याद आ रही है
try
{
// ...
}
catch (Exception ex)
{
ex.Data.Add("Hello", "World");
throw ex;
}
अपवाद सही ढंग से लॉग ऑन है, लेकिन मैं जोड़ा डेटा EHAB द्वारा बनाई लॉग प्रविष्टि में कहीं भी नहीं मिल रहा।
जहां तक मैं समझता हूँ, यह उपरोक्त उदाहरण की तरह अपवाद ही करने के लिए अतिरिक्त प्रासंगिक जानकारी जोड़ने का सुझाव व्यवहार है। यही कारण है कि मैं थोड़ा आश्चर्यचकित हूं कि ईएचएबी डिफ़ॉल्ट रूप से इसे शामिल नहीं करता है।
मैं EntLib पाठ फ़ॉर्मेटर टेम्पलेट संपादक (नीचे स्क्रीन शॉट) के साथ टेम्पलेट को संशोधित करके इसे ठीक कर सकते हैं? मुझे प्रदान किए गए विभिन्न "टोकन" पर कोई जानकारी नहीं मिल रही है, लेकिन मुझे लगता है कि उत्तर उनके साथ कहीं छिपा हुआ है।
Text Formatter Template Editor http://img195.imageshack.us/img195/6614/capturegmg.png
या मैं वास्तव में यह पूरा करने के लिए अपने स्वयं के कस्टम पाठ फ़ॉर्मेटर को लागू करने की जरूरत है?
संपादित करें/अद्यतन:
मैं आदेश मेरी कोड में हर जगह HandleException विधि कॉल जोड़ने के लिए होने से बचने के लिए मेरी Global.asax.cs में ऐसा करते हैं:
using EntLib = Microsoft.Practices.EnterpriseLibrary;
using System;
namespace MyApp
{
public class Global : System.Web.HttpApplication
{
protected void Application_Error(object sender, EventArgs e)
{
// I have an "All Exceptions" policy in place...
EntLib.ExceptionHandling.ExceptionPolicy.HandleException(Server.GetLastError(), "All Exceptions");
// I believe it's the GetLastError that's somehow returning a "lessor" exception
}
}
}
यह पता चला इस नहीं इस रूप में ही है (जो ठीक काम करता है, और अनिवार्य रूप मेरी समस्या का हल):
try
{
// ...
}
catch (Exception ex)
{
ex.Data.Add("Hello", "World");
bool rethrow = ExceptionPolicy.HandleException(ex, "Log Only Policy");
throw ex;
}
सभी कोड के माध्यम से जाकर और हैंडलएक्सप्शन कॉल के साथ ट्राइक-कैच जोड़ना बस लगता है ... अच्छा, बेवकूफ। मुझे लगता है कि मेरी समस्या वास्तव में है ईएचएबी सही ढंग से कॉन्फ़िगरेशन का उपयोग करें।
कोई सुझाव नहीं कि मैं ठीक से एएसपी.NET वेब एप्लिकेशन में "वैश्विक स्तर" पर सभी अपवादों को लॉग इन कर सकता हूं ??
मैं हैंडलएक्सप्शन से सहमत हूं: एक ढांचे के रूप में, "अगर रीथ्रो" निर्माण वास्तव में बहुत अधिक अमूर्तता प्रदान नहीं करता है; आपको अभी भी प्रत्येक पकड़ ब्लॉक में "अगर रीथ्रो" कोड के साथ अपना कोड मिर्च करने की आवश्यकता है। –