Detect Exception gegooid met een methode in DLL waarnaar wordt verwezen (.Net)

Ik heb een C# .net-code die een methode oproept van een andere externe/gerefereerde .net-assembly. Deze methode roept een uitzondering als een bepaalde eigenschap van het object dat ik passeer nul is. Hier is het in een notendop:

public void Add(string key, object obj)
{
..
//if the Foo property from obj is null then
throw new Exception("Foo property is null or empty")
..
}

In mijn clientcode die de methode voor het toevoegen van het DLL-bestand aanroept, zou ik graag willen kunnen vaststellen dat deze specifieke uitzondering is verhoogd, misschien onderscheiden door het bericht "Foo-eigenschap is leeg of leeg". Momenteel krijg ik een NullReferenceException wanneer deze deze methode raakt, dus ik vat deze uitzondering op.

Question1: Can I get the error message associated with the exception being thrown by the code I am calling (in the referenced assembly)??

Question2: Is this considered bad practice or maybe just atypical?

Het is duidelijk dat ik de DLL van derden kan demonteren om te ontdekken dat mijn obj die ik passeer deze "Foo" -eigenschapset moet hebben. Dus mijn vraag hier is enigszins omwille van oefening (en omdat ik een n00b ben).

0

1 antwoord

Catching System.Exception en de uitzonderingen weergeven Berichteigenschap is alles wat ik nodig heb. Eerst kreeg ik een NullReferenceException met het bericht "Objectreferentie niet ingesteld op instant van een object" bij de methode Add, maar ik verwachtte een uitzondering te krijgen met de melding "Foo-eigenschap is leeg of nul" -fout. Sommige omstandigheden zijn veranderd in mijn code en ik krijg nu wat ik verwacht.

0
toegevoegd
@Hans begrijp ik niet - het is een slechte gewoonte om de uitzondering te vangen, de code die ik noem is gooien? Ik weet niet zeker wat je bedoelt met 'lokaliseren', kun je me helpen?
toegevoegd de auteur JohnZaj, de bron
@hans het is hier niet gelokaliseerd omwille van de beknoptheid. Ik ben het met je commentaar eens
toegevoegd de auteur JohnZaj, de bron
Dit is erg slechte praktijk, het lokaliseren van uw app zal uw code breken.
toegevoegd de auteur Hans Passant, de bron