Mindenki ismeri a kivételeket (exception). Fejlesztés közben őket nézzük a konzolon, vagy a böngészők sárga oldalain. Ők mondják meg nekünk, hogy a ki által hívott milyen metódus hanyadik sorában van hiba. Végül a fejlesztési idő után, rossz gyakorlatként, legtöbbjüket lenyeljük egy catch blokkban, jobb esetben loggoljuk őket. Akkor is csak valamilyen Log.Write( ex.ToString() ) alakban. Ezekben a logokban gyakran fájdalmas megtalálni a ténylegesen kivételt dobó metódust, vagy osztályt. Nézegetjük a hosszú stack trace-t, és arra gondolunk, hogy biztos lehetne ezt értelmesebben is.
Szerencsére lehet. Kevesen használják ki a gyakorlatban, hogy egy kivételnek a stack trace-en kivűl van másik három - más-más célcsoportot célzó - tulajdnosága.
Exception.TargetSite - A metódus neve, ahol a kivétel keletkezett. Loggold ezt (is), ezzel megkönnyíted az üzemeltetők dolgát.
Exception.HelpLink - Add meg azt az URL-t, ahol segítséget kaphat az alkalmazásod felhasználója, ha ezzel a hibával találkozik. Állítsd be, amikor kivételt dobsz, ezzel a felhasználóidnak üzenhetsz.
Exception.Data - Egy Dictionary. Kulcs érték párokat tárolhatsz benne. Arra jó, hogy azokat a fontos körülményeket is lementhesd egy Exceptionbe, amikre nincs kész tulajdonság előre. Használatával a többi fejlesztőnek üzenhetsz.