// By default, the data field is empty, so check for null.
Console.WriteLine("\n-> Custom Data:");
if (e.Data != null)
{
foreach (DictionaryEntry de in e.Data)
Console.WriteLine("-> {0}: {1}", de.Key, de.Value);
}
}
With this, we would now find the update shown in Figure 7-4.
Figure 7-4.
Obtaining programmer-defined data
The Data property is very useful in that it allows us to pack in custom information regarding the
error at hand without requiring us to build a brand-new class type extending the Exception base
class (which, prior to .NET 2.0, was our only option!). As helpful as the Data property may be, how-
ever, it is still common for .NET developers to build strongly typed exception classes, which account
for custom data using strongly typed properties.
This approach allows the caller to catch a specific Exception-derived type, rather than having
to dig into a data collection to obtain additional details. To understand how to do so, we need to
examine the distinction between system-level and application-level exceptions.
Do'stlaringiz bilan baham: |