Diskuze: Windows Phone - App.xaml.cs nezachytí výjimku
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Právě že žádná, prostě to nezachytí. Ten try/catch má výjimku z manageru zachytit. Ale ignoruje to / přeskočí. VS 13 mě už sem tam dokázali pěkně překvapit, zvlášť u WP. Někdy neukáže chybu a jenom to spadne a do Output napíše že "někde" došlo k výjimce, když máš štěstí napíše +- jaká
"An exception of type 'System.ArgumentException' occurred in Unknown Module. but was not handled in user code" tohle mi napíše. Nechápu v čem je problém.
Nakonec zjišťuju že to absolutně neumí zachytit výjimku a dál ji propagovat...Nenapadá někoho kde by mohla být chyba ? Na googlu hledám, ale nemůžu najít nic pořádně
"but was not handled in user code" napíše snad úplně ke všemu. Nejlepší je ty soubory ošetřovat ifem.
To je blbost. Může tam dojít k různým výjimkám. Proto také výjimky máme. Sice může existovat soubor, ale může dojít k chybě při čtení, špatné parsování, .... nebudu tam vše IFovat
ještě si zkus hodit breakpoint do catch, ať víš jestli se tam vůbec dostane a ať ti ukáže co je tam dál. Ony ty vyjimky na Windows Phone sice nic moc ze začátku neříkají, ale zobrazíš si detaily a innerException, dozvíš se mnohdy o hodně víc.
Skočí to tam. Každopádně problém bude v celém VS a SDK. Ptal jsem teď někoho kdo si s WP rozumí už hodně dlouho. Pokud člověk má více verzí VS, SDK, IIS, Apache, MS-SQL server, ... nejspíš se to sesype. Takže reinstal SDK, případně reinstal VS. A v úplně nejhorším případě reinstal OS
BTW nefunguje ani toto
try {
int a = int.Parse("aaaa");
}
catch(Exception e){
throw new ArgumentException("Chyba při parsování",e);
}
Lidi,potřebuju opravdu help. Nevidíte kde je chyba ? Proč to výjimku nezachytí (resp. nepropaguje dál ?) Jedná se o Windows Phone.
public async void LoadDataAsync()
{
try
{
Projects.Clear();
ObservableCollection<Project> list = await dataSrl.LoadFileAsync<Project>("projects", Windows.Storage.ApplicationData.Current.LocalFolder);
foreach (Project item in list)
Projects.Add(item);
}
catch (Exception e)
{
throw new Exception("Error during loading data", e);
}
}
Debugger skončí na řádku throw new Exception...
Metodu volám
try
{ App.Manager.ProjectManager.LoadDataAsync(); }
catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); }
Ještě jedna "zajímavost" (test).
try
{
await Task.Run(() =>
{
for (int i = 0; i < 100; i++)
{
if (i % 10 == 0)
{ int b = int.Parse("AAA"); }
}
});
}
catch(Exception e)
{ throw new ArgumentException("Chyba", e); }
Na řádku int b debugger skončí
An exception of type 'System.FormatException' occurred in mscorlib.ni.dll but was not handled in user code
Additional information: Input string was not in a correct format.
http://stackoverflow.com/…-async-await
To je tak tezke pouzit google?
No, taky už mě to došlo jakmile jsem zkusil ten druhý test. BOže, občas
mám pocit že kdybych prodával párek v rohlíku někde na ulici se budu 3x
líp Ale tak, asi kvůli
tomuhle nás to všechny tak nádherně baví, no ne ?
Zobrazeno 13 zpráv z 13.