[C#] Try/Catch

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Bl!zz4rD, 26. Juli 2013 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 26. Juli 2013
    Try/Catch

    So hab jetzt ein neues Problem und zwar möcht ich gern eigene Exceptions erstellen. Hab damit leider noch nie gearbeitet. Mir wurde es grob erklärt aber ich bekomm es einfach nicht hin hier mal den code:

    Code:
     try
     {
     this.set_rows(fileName);
     }
     catch (ArgumentException e)
     {
     cLog.set_log(e + fileName + " - " + datetime);
     cLog.write_log(str_path);
    
     continue;
     }
    
    Hier die set_rows funktion

    Code:
     private void set_rows(String str_fileName)
     {
     str_replace = '\"' + str_replace + '\"';
     str_search = '\"' + str_search + '\"';
     Regex myRegex = new Regex("" + str_delimiter + "(?!(?:[^\"" + str_delimiter + "]|[^\"]" + str_delimiter + "[^\"])+\")");
    
     for (int i = 0; i < arr_data.Count; i++)
     {
     string[] row_split = myRegex.Split(arr_data[i]);
    
     if (i == 0)
     {
     for (int j = 0; j < row_split.Length - 1; j++)
     {
     if (row_split[j] == str_replace)
     {
     col_replace = j;
     }
    
     if (row_split[j] == str_search)
     {
     col_search = j;
     }
    
     throw new System.ArgumentException("Row:" + j + " is not defiened"); // Hier möchte ich die Fehlermeldung haben die oben angezeigt werden soll. Wie mach ich das ??
     }
     }
     else
     {
     row_split[col_replace] = this.changeData(row_split[col_replace], row_split[col_search], str_schema);
     }
    
     string str_row = string.Join(",", row_split);
     arr_newData.Add(str_row);
     }
    
     this.writeFile(str_fileName);
     }
    
     
  2. 26. Juli 2013
    AW: Try/Catch

    deine Log Klasse kenne ich nicht aber ich schätze jetzt mal das ist das was du willst (davon ausgehend, dass fileName und datetime exisitieren):
    Code:
     try
     {
     this.set_rows(fileName);
     }
     catch (ArgumentException e)
     {
     cLog.set_log(fileName + " - " + datetime + ".log");
     cLog.write_log(e.Message);
    
     continue;
     }
    Siehe auch: Exception Class (System)
    PS: Ich gehe natürlich davon aus, dass die set_rows() funktioniert.
     
  3. 27. Juli 2013
    AW: Try/Catch

    Wenn die set_rows funktioniert sieht das doch gar nicht schlecht aus.
    Du kannst natürlich auch eigene Klassen schreiben die von Exception erben und dann wirklich eigene Exceptions machen.

    Ich seh auch grad nicht wo dein Problem dabei ist. Willst du wissen ob es so richtig gemacht ist?
    Exceptions sind halt wie der Name schon sagt Ausnahmen. Das heißt wenn die Exception geworfen wird kann man davon ausgehen, dass die Methode oder Klasse nicht so Funktioniert gedacht und je nachdem was für eine Exception fliegt diese Fehler behandeln. z.B. Kann es eine Exception geben wenn du in eine Datei schreiben willst für die du keine Rechte hat, dann gibt es eine entsprechende Exception. Dann kann man sich überlegen ob man vllt eine andere Datei ausprobiert oder einfach dem Benutzer des Programmes dies mitteilt.
     
  4. 29. Juli 2013
    AW: Try/Catch

    So jetzt bin ich wieder in der arbeit und hab das glecih mal getestet. Das problem was ich hab ist, das die Fehlermeldung kommt: Unerreichbarer Code wurde entdeckt. Deshalb kam hier auch meine frage
     
  5. 29. Juli 2013
    AW: Try/Catch

    Und wieso postest du das erst jetzt und nicht im Startpost :angry:?
    Welche Zeile ist denn laut IntelliSense (ich gehe mal von VS aus) nicht erreichbar? Auf den ersten Blick konnte ich nichts erkennen (ist aber noch vor dem ersten Kaffee).

    PS: Wies postest du Code den du für die Arbeit schreiben musst? Hast du keine Kollgegen die dir helfen können und ist das mit dem Chef abgesprochen? Ich habe bei meinen Praktika immer nen NDA unterschrieben und würde mich hüten auch nur Snippets zu veröffentlichen. Das gibt ganz schnell ordentlich Ärger.
     
  6. 29. Juli 2013
    AW: Try/Catch

    Is für lernzwecke ich programmier normalerweise php soll mir aber mal c# anschaun für die Zukunft da das noch keiner bei uns richtig drauf hat keine angst ich weiß was ich veröffentlichen darf und was nicht

    habs jetzt hinbekommen lag wohl daran das man die line:

    throw new System.ArgumentException("Row:" + i + " is not defiened");

    nicht eine eine forschleife machen darf. Warum auch immer. Danke euch.
     
  7. 29. Juli 2013
    AW: Try/Catch

    Natürlich... ich sag ja vor dem ersten Kaffee. Deine Erklärung ist jedoch falsch:
    Du läufst in deiner for schleife auf jeden Fall in die Execption. Nach dem Werfen wird die Funktion verlassen und der Code danach ist somit unerreichbar. Du kannst schon eine Exception in einer For Schleife werfen, dann aber bitte im richtigen Fall:
    Code:
     for (int j = 0; j < row_split.Length - 1; j++)
     {
     if (row_split[j] == str_replace)
     {
     col_replace = j;
     }
    
     else if (row_split[j] == str_search)
     {
     col_search = j;
     }
     else{
     throw new System.ArgumentException("Row:" + j + " is not defiened"); // Hier möchte ich die Fehlermeldung haben die oben angezeigt werden soll. Wie mach ich das ??
     }
     }
    Siehe auch: if-else (C#)
     
  8. 29. Juli 2013
    AW: Try/Catch

    autch -.- klar logo du hast recht.. zwar geht das in dem fall auch nicht aber ich weiß jetzt was ich machen muss. Danke dir hast mir sehr geholfen !
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.