Ich bräuchte mal etwas konstruktive Kritik

Reverent

Erfahrenes Mitglied
Hallo Leute,
ich habe hier mal etwas Quellcode
Code:
//Diese Funktion überprüft ob eine bestimmte Datei in einem bestimmten Pfad vorhanden ist
private bool ResourceExist(string strPath, string strFile)
{
    return File.Exists(strPath+"\\"+strFile);
}

//Diese Funktion liest die Daten aus einer Resource Datei
//und gibt eine entsprechende Exception zurück
private Exception ResourceRead(string strPath, string strFile)
{
    Exception ex;
    if(ResourceExist(strPath, strFile))
    {
        try
        {
            System.Resources.ResourceReader resReader = new System.Resources.ResourceReader(strPath+"\\"+strFile);
	IDictionaryEnumerator IDE = resReader.GetEnumerator();
            while( IDE.MoveNext())
            {
	if(IDE.Key.ToString() == "Administrator")
	    strKennwort = IDE.Value.ToString();

	if(IDE.Key.ToString() == "Benutzer")
	    alBenutzer = (ArrayList)IDE.Value;
            }
            resReader.Close();
            return ex = null;
        }
        catch(Exception e)
        {
	return e;
        }
    }
    else
    {
        return ex = new Exception("Diese Datei '"+strPath+"\\"+strFile+"' existriert nicht.");
    }
}
Ich möchte euch mal nach eurer konstruktive Meinung fragen zu diesem Quellcode, wie man es vielleicht noch besser nachen könnten
Vielen Dank und bis dann
 
Oh Junge, was'n das?
Seit wann gibt man eine Exception als Rückgabewert zurück? :eek:
Exception Fehlernummer - Thread

Versuch bitte nicht die Welt neu zu erfinden. Aus den 36 Zeilen kannst 1 machen. :D
Code:
string sMessage = new RessourceManager( typeof(MyClass) ).GetString( "Administrator" );
Btw. schonmal was von Path.Combine gehört?
Code:
Path.Combine( strPath, strFile );
Btw.:
Code:
"\\" == @"\" == Path.DirectorySeparatorChar
PS.: Die Netiquette :rolleyes:
 
Hallo Leute,
Seit wann gibt man eine Exception als Rückgabewert zurück?
Das weiß ich nicht, ich habe gedacht, das wenn in der Funktion ein Exception auftritt dann gebe ich sie zurück um im Button_Click darauf reagieren zu können.

Und mit dem Beispiel Exception Fehlernummer - Thread komme ich nicht ganz mit klar.
Wie soll ich es denn sonst machen, die Exception schon in der Funktion auswerten und dann die Funktion abbrechen?
Bis Dann
 
Wie währe es wenn deine Funktion einfach ein true oder false oder einen FehlerCode zurück gibt?
Das was Du machst produziert einen sinnlosen Overhead.
Norbert hat mit oft genug den Kopf diesbezüglich gewaschen.

Wie soll ich es denn sonst machen, die Exception schon in der Funktion auswerten und dann die Funktion abbrechen?
Mensch Du verblüffst mich. Das ist sogar ein OOP gerechter Ansatz. Weiter so!

Bis irgendwann.
PS.: Ausserdem heisse ich nicht Leute.
 
Inwiefern meinst Du das?
Sollte eine Funktion nicht anstatt der Exception den Status/Resultat der Aktion zurückgeben.
Ist doch nicht OOP gerecht das ausserhalb abzuhandeln.
 
Eine Exception als Rückgabewert ist SCHWACHSINN.
Programmflusssteuerung via Exceptions ist SCHWACHSINN.
Code:
private bool ResourceExist(string strPath, string strFile)
{
    return File.Exists(strPath+"\\"+strFile);
}
^^ ist auch Schwachsinn.

Usw.

Sorry, aber es wird mir einfach schlecht wenn ich sowas lese und dann auch noch ungestützte Behauptungen über Exceptions usw.

Und daher mach ich mir einfach mal die Mühe und schreib ein oder mehrere Tutorials zu solchen Themen und dann wird darauf verwiesen. Und wenns jemand net findet, dann nagel ich ihm das persönlich aufs Hirn :)

Nehmt es mir net böse, aber lests euch doch diverseste Resourcen im Netz zu diesem Thema durch. Ihr könnts doch eh alle englisch. Kaufts euch Bücher zu unterschiedlichen Themen. So schwer ises ja net. Da platzt einem wirklich der Kragen.

Alter, ich schreib auch noch eines, wann eigene Methoden Sinn machen und wann nicht ...
 
OK Norbert und was sollte dies hier :
Eine Exception als Rückgabewert ist SCHWACHSINN.
Programmflusssteuerung via Exceptions ist SCHWACHSINN.

Code:
private bool ResourceExist(string strPath, string strFile)
{
    return File.Exists(strPath+"\\"+strFile);
}
ist auch Schwachsinn.

Usw.

Sorry, aber es wird mir einfach schlecht wenn ich sowas lese und dann auch noch ungestützte Behauptungen über Exceptions usw.

Und daher mach ich mir einfach mal die Mühe und schreib ein oder mehrere Tutorials zu solchen Themen und dann wird darauf verwiesen. Und wenns jemand net findet, dann nagel ich ihm das persönlich aufs Hirn

Nehmt es mir net böse, aber lests euch doch diverseste Resourcen im Netz zu diesem Thema durch. Ihr könnts doch eh alle englisch. Kaufts euch Bücher zu unterschiedlichen Themen. So schwer ises ja net. Da platzt einem wirklich der Kragen.

Alter, ich schreib auch noch eines, wann eigene Methoden Sinn machen und wann nicht ...

daraus werden ich jetzt auch nicht schlauer.
Wie soll ich das nun machen mit den Exception?
 
Norbert Eder hat gesagt.:
Eine Exception als Rückgabewert ist SCHWACHSINN.
Programmflusssteuerung via Exceptions ist SCHWACHSINN.
Code:
private bool ResourceExist(string strPath, string strFile)
{
    return File.Exists(strPath+"\\"+strFile);
}
^^ ist auch Schwachsinn.
Sag ich doch. :D
Und unterstelle mit bitte nicht das ich Exceptions als Programmflusssteuerung
(Scheiss neue deutsche Rechtscheibung) verwende.
Das geht aus meinen Vorschlägen nicht hervor. Dessen bin ich mir sicher.
Ich mache Vorschläge zur Abhandlung derer. Das man auf alles mit Logik prüfen muss ist mir klar.
Da waren wir uns sogar einig.
[thread=162023]Codenavigation durch Exceptions? - Thread[/thread]
Wenn ichs nicht verstanden hab, das zeig es mir bitte. Vielleicht versteh ich's ja doch nicht.
Du weisst ich hab damals auch ganz schön triviale Schwierigkeiten, wie der Revent hier gehabt.
 
Wie du das ganze machst hängt auch davon ab, wo deine Methoden drinnen sind. In einer eigenen Klasse, unter einer Form etc. Das weiß ich ja alles nicht. Nur eine Exception per return zurückzugeben ist äußerst übel.

Deine Methode ResourceExist is absolut umsonst. Denn das kannst auch mit dem File.Exists alleine abfakeln.

Dann mal eben bekannt geben WO diese Methode drinnen ist -> Klasse, Form etc. Wenns nämlich in einer Form ist, dann kannst ja ohnehin gleich eine MessageBox ausgeben lassen. Hast du die Methode in eine Klasse ausgelagert, dann gibts genauso mehrere Möglichkeiten. Das ganze Geschichterl mit Fehlernummern etc. vergiss gleich mal. Das macht wirklich nur ganz ganz selten Sinn.

Wenn du schon eine Exception wirfst, dann bitte mit throw new Exception .. wobei Exception hier die Basis-Exception ist. Davon gibts Ableitungen die feiner granulieren. Ebenso kannst deine eigenen Exceptions basteln.

Dann stellst sich bei dir die Frage was du mit deiner Exception erreichen willst? Was soll denn passieren wenn die Exception geworfen wird?
 
Zurück