Forum: PC-Programmierung C# Anfängerfrage


von Sandra (Gast)


Lesenswert?

Ich habe eine c# WPF Anwendung. Nun habe ich hier eine Bibliothek 
eingebunden, bei dieser sind Debugmeldungen integriert mit

Debug.WriteLine(String.Format("....", cbRead,message));

Wo wird diese Meldung ausgegeben, so dass ich sie auch lesen kann?

von bluppdidupp (Gast)


Lesenswert?

Die erscheinen "Output"-Fenster.
Im Menü: "View" > "Output" - bzw: STRG+W und dann O

von Sandra (Gast)


Lesenswert?

Wow, vielen herzlichen Dank!! Und plötzlich wird einem soviel klar, was 
und warum das Programm so reagiert ;-) ...

von Sandra (Gast)


Lesenswert?

Noch was, ich bekomme realativ häufig diese Meldungen:

A first chance exception of type 'System.IndexOutOfRangeException' 
occurred in xyz.exe

A first chance exception of type 'System.ArgumentOutOfRangeException' 
occurred in mscorlib.dll

A first chance exception of type 'System.IO.IOException' occurred in 
System.Core.dll

...broken pipe

Kann ich nun irgendwie herausfinden, in welcher Zeile die exeption 
auftritt?
Bis jetzt sehe ich nur die Meldung im Output-Fenster

von bluppdidupp (Gast)


Lesenswert?

Normalerweise markiert der Debugger die Zeile in der die Exception 
ausgelöst wurde automatisch und hält die Programmausführung an - Es sei 
denn die Exception wird vom Code selbst z.B. via try-catch-Block 
aufgefangen.
Über "Debug" > "Exceptions" kann man aber auch dafür sorgen, dass der 
Debugger bei Fehlern immer anhält (Bei "Common Language Runtime 
Exceptions" in der Spalte "Thrown" ein Häkchen setzen)

von Sandra (Gast)


Lesenswert?

Tolle Sache, sehr praktisch! An folgender Stelle (in der Zeile 
"colorCode = int.Parse(hexString,...)") erhalte ich eine

1
            int colorCode = Color.Red.ToArgb();
2
            try
3
            {
4
                string hexString = this.textBoxSLRGB.Text;
5
                if (hexString.Length == 6)
6
                {
7
                    hexString = "FF" + hexString;
8
                }
9
                colorCode = int.Parse(hexString, System.Globalization.NumberStyles.HexNumber);
10
            }
11
            catch
12
            {
13
                colorCode = Color.Red.ToArgb();
14
                this.textBoxSLRGB.Text = colorCode.ToString("X").Substring(2, 6);
15
            }

Erhalte ich folgende Meldung:
A first chance exception of type 'System.FormatException' occurred in 
mscorlib.dll

Wie kann ich dies verbessern??

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sandra schrieb:
> Wie kann ich dies verbessern??

Sieh Dir mal im Debugger an, wie Dein "hexstring" aussieht, den Du der 
Funktion int.Parse übergibst.

Und sieh Dir dazu das hier an:

http://msdn.microsoft.com/de-de/library/c09yxbyt%28v=vs.110%29.aspx

von benwilliam (Gast)


Lesenswert?

ich glaube der Compiler versucht nur darauf hinzuweisen,
dass man an dieser stelle nicht nur ein allgemeines "catch", sondern ein 
spezielles "catch System.FormatException" verwenden könnte

von Jay (Gast)


Lesenswert?

Hallo,

Wenn ich mich recht erinnere, bedeutet 'first chance exception', dass 
eine Exception auftrat, diese aber durch ein catch aufgefangen wird.

CU,
Jay

von bluppdidupp (Gast)


Lesenswert?

int.Parse wirft eine Exception, weil scheinbar Müll in hexString steht. 
Dadurch wird in den catch-Block gesprungen.
Die Exception vermeiden könnte man (sofern man nicht für ein gültiges 
hexString sorgen kann), indem man statt int.Parse eher int.TryParse 
verwendet.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.