Frage

Ich schreibe eine DLL, die ein Wrapper zu einer Access-Datenbank ist. und ich bin ziemlich neu in c # im Allgemeinen als mein Hintergrund ist in Web-Entwicklung LAMP mit Perl, ich bin nicht sicher, was ist ein guter Weg, Fehler zu einem rufenden App im Fall zurückkehrt sie die falschen Parameter an meinen Funktionen übergeben oder was nicht .

Ich habe keine Ahnung, wie der jetzt außer wahrscheinlich einige msgbox zu tun oder einige Ausnahmen werfen, aber ich weiß nicht, wo zu Beginn der Suche. Jede Hilfe oder Ressourcen wäre mehr als nützlich:)

Dank ~

War es hilfreich?

Lösung

Sie wollen wahrscheinlich nicht Nachricht Dialoge aus Ihrer dll angezeigt werden, das ist die Aufgabe der Client-Anwendung als Teil der Präsentationsschicht.

Net-Bibliothek Baugruppen typischerweise Blase Ausnahmen von der Host-Anwendung, so dass der Ansatz ist an ich würde aussehen.

public static class LibraryClass
{
    public static void DoSomething(int positiveInteger)
    {
        if (positiveInteger < 0)
        {
            throw new ArgumentException("Expected a positive number", "positiveInteger");
        }
    }
}

Dann ist es bis zu Ihrer Host-Anwendung dieser Ausnahmen, Protokollierung und Anzeige von ihnen gegebenenfalls zu behandeln.

try
{
    LibraryClass.DoSomething(-3);
}
catch(ArgumentException argExc)
{
    MessageBox.Show("An Error occurred: " + argExc.ToString());
}

Andere Tipps

Falsche Parameter werden in der Regel durch das Werfen ein Arguments oder einer ihrer Unterklassen behandelt.

Sie wollen eine Ausnahme werfen.

Siehe

http://msdn.microsoft.com/en-us/library /ms229007.aspx

für die gängigsten Rahmen Ausnahmen wie Argument und InvalidOperationException. Siehe auch

http://msdn.microsoft.com/en-us/library /ms229030.aspx

Check out-Design-Richtlinien für Klassenbibliothek Entwickler: Fehler Die Anhebung und Handling-Richtlinien

Dlls im Allgemeinen sollte nicht jede Art von UI-Elemente erstellen, einen Fehler zu melden. Sie können (gleiche Bedeutung wie raise) viele verschiedene Arten von Ausnahmen werfen, oder erstellen Sie Ihre eigenen und der anrufende Code (Client) kann den Benutzer fangen und melden.

public void MyDLLFunction()
{
    try
    {
        //some interesting code that may
        //cause an error here
    }
    catch (Exception ex)
    {
        // do some logging, handle the error etc.
        // if you can't handle the error then throw to
        // the calling code
        throw;
        //not throw ex; - that resets the call stack
    }
}

neue Ausnahme werfen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top