[WPF] Exceptions.

Pagina: 1
Acties:

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Topicstarter
Ik loop in een stom probleem.

Soms ben ik aan het debuggen in een WPF applicatie, en gaat er iets fout. Ik krijg dan geen Exception te zien (de code hangt zich niet op), maar ik krijg wel in de log te zien dat er een Exception is gebeurt (ik kan dus niet de bijhorende stactrace bekijken).

Met Windows.Forms heb ik nog nooit zoiets gehad, maar WPF doet het vrij vaak, terwijl soms de code wel breakt, en dan kan ik wel de stack bekijken.

Maar ik kan er geen patroon aan knopen.

Weet iemand of het mogelijk is om dit aan te zetten voor ALLE Exceptions?

Going for adventure, lots of sun and a convertible! | GMT-8


  • whoami
  • Registratie: December 2000
  • Nu online
Hoe bedoel je precies ?

Je kan in VS.NET specifieren dat de debugger moet breaken als er een exceptie gegooid wordt, ipv breaken op unhandled exceptions.
(Die exceptions die je in de log ziet, zijn wellicht excepties die door het framework gegooid zijn, en opgevangen & afgehandeld worden in het .net framework ? )

https://fgheysels.github.io/


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Topicstarter
whoami schreef op donderdag 26 februari 2009 @ 22:24:
Hoe bedoel je precies ?

Je kan in VS.NET specifieren dat de debugger moet breaken als er een exceptie gegooid wordt, ipv breaken op unhandled exceptions.
(Die exceptions die je in de log ziet, zijn wellicht excepties die door het framework gegooid zijn, en opgevangen & afgehandeld worden in het .net framework ? )
Neen als de Exception zou afgevangen worden zou het programma normaal moeten doorwerken, maar dat doet het dus niet.

Waar kan je dat instellen?

Going for adventure, lots of sun and a convertible! | GMT-8


  • whoami
  • Registratie: December 2000
  • Nu online
Debug / Exceptions dacht ik ... zo uit het blote hoofd.

https://fgheysels.github.io/


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Topicstarter
whoami schreef op donderdag 26 februari 2009 @ 22:27:
Debug / Exceptions dacht ik ... zo uit het blote hoofd.
Nop, daar is het niet.

Ik heb het iig over InvalidOperation Exceptions. Die worden alleen weergegeven in de console.

Going for adventure, lots of sun and a convertible! | GMT-8


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Topicstarter
Soms verschijnt er dit in de console:
A first chance exception of type 'System.FormatException' occurred in mscorlib.dll
A first chance exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll
.

Ik kan nu even geen code geven om het te reproduceren.

Going for adventure, lots of sun and a convertible! | GMT-8


  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 22-09 09:45

Onbekend

...

Deze exceptions zijn moeilijk te debuggen. Soms horen ze er gewoon te staan volgens vele gebruikers.
Die dll handelt de fout zelf af en gaat gewoon verder.

Zelf heb ik al heel veel tijd verspilt daaraan, maar kreeg die exception niet weg. :(

Speel ook Balls Connect en Repeat


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Topicstarter
Ik heb een timer, en die timer die moet de UI updaten. Maar die mag dat niet rechtstreeks, dus dan roep ik de dispatcher op. En in die dispatcher itereer ik dan over een list, haal ieder object op en beeld dat dan af.

Maar als ik iets verander aan die lijst dan wordt in die dispatcher een Exception gegooid (logisch), (A first chance exception of type 'System.InvalidOperationException' occurred in PresentationCore.dll).

Maar ik zou dus willen dat de code daarop breekt, wat ie dus niet doet.

Ik weet bij dit voorbeeld waar het vandaan komt, maar dat duurt mij soms ZOOO lang om dat te vinden, en daar wil ik naar toe in dit topic: hoe zorg ik ervoor dat Visual Studio ook breekt op dit soort Exceptions.

Going for adventure, lots of sun and a convertible! | GMT-8


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Topicstarter
Een ander voorbeeld, wat ik niet kan traceren:

Ik heb m'n entity model in een dll zitten, en in een ander WPF project roep ik (in de constructor) dit op:
C#:
1
this.entitiesVoetbal = new EntitiesVoetbal(); 


Nu heeft die een probleem het het vinden van het path naar de database ivm de app.config, sure enough, maar waarom komt er alleen maar een stomme exception (System.IO.FileNotFoundException) in de console te staan, terwijl dit toch echt een breaking issue is.

[ Voor 3% gewijzigd door Snake op 26-02-2009 23:18 ]

Going for adventure, lots of sun and a convertible! | GMT-8


  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 21-09 18:08

CoolGamer

What is it? Dragons?

Je zou het in een try..catch blok kunnen zetten met in de catch:
C#:
1
System.Diagnostics.Debugger.Break();

Het is wat omslachtig, maar dan breakt hij in ieder geval.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Topicstarter
TheCoolGamer schreef op donderdag 26 februari 2009 @ 23:25:
Je zou het in een try..catch blok kunnen zetten met in de catch:
C#:
1
System.Diagnostics.Debugger.Break();

Het is wat omslachtig, maar dan breakt hij in ieder geval.
Je snapt het niet denk ik (nofi). Ik moet dan rond ieder statement / block een try catch gaan zetten.

Going for adventure, lots of sun and a convertible! | GMT-8


  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 21-09 18:08

CoolGamer

What is it? Dragons?

Wat is dan de code van die constructor, want het lukt mij niet om jouw probleem te reproduceren. En van waaruit wordt de nieuwe instantie gemaakt (of de code die daar weer boven zit)? Want als daar omheen een try..catch hebt staan krijg je wat je nu beschrijft.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:01

TeeDee

CQB 241

Dus als ik je goed begrijp; je krijg een Exception maar jij (en de debugger) weet niet waar deze vandaan komt?

Je kan, zoals whoami zegt kijken bij Debug > Exceptions en dan Common Language Runtime Exceptions. Die zou, als het goed is ;), bij elke exceptie moeten breaken.

Ik denk ook niet dat het aan code, try.. catch of wat dan ook ligt maar echt aan een of andere vage setting in je IDE.

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Topicstarter
whoami schreef op donderdag 26 februari 2009 @ 22:27:
Debug / Exceptions dacht ik ... zo uit het blote hoofd.
Whoami, ik heb (natuurlijk) in het verkeerde menu gekeken, thanks :)

Ik ga nu even verder testen.

Edit: Dat zijn echt serieus veel Exceptions die dan gegooid worden.

Maar toch bedankt :)

[ Voor 14% gewijzigd door Snake op 27-02-2009 01:51 ]

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je kan natuurlijk ook alleen breaken op de specifieke exception waar je wat mee wilt doen.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1