Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdValentijn de Ruiter Laatst gewijzigd meer dan 6 jaar geleden
1
Gameprogrammeren: Exceptions
Arjan Egges Paul Bergervoet Wouter van Toll
2
Game development Van prototype naar commercieel product
Meer levels, uitgebreider game ontwerp Professioneel ontworpen assets Goed opgezette programmacode Hoge mate van robuustheid
3
Robuustheid Goed ontwerp van je code is cruciaal
Duidelijke afspraken voor gedrag van methoden/klassen Zoveel mogelijk bugs verwijderen Zoveel mogelijk verschillende gevallen/problemen ondervangen Testen, testen, testen!
4
Software testen Verschillende soorten tests:
Handmatig Automatisch (unit tests) Verschillende niveaus van testen: Alpha test Intern Meestal alleen developers Beta test Extern Grotere groep spelers
5
Excepties Voorbeeld: StreamReader r = new StreamReader("test.txt");
string t = r.ReadToEnd(); // oops… the file test.txt doesn’t exist… Wat nu?
6
Excepties Zijn een manier om robuustheid van games te vergroten
Excepties gebruik je om externe problemen op te lossen: Er mist een bestand De internetverbinding wordt verbroken Een andere speler gaat plotseling off-line …
7
Excepties Dit soort gevallen kun je afhandelen met exceptions (“uitzonderingen”) try { StreamReader r = new StreamReader("test.txt"); string t = r.ReadToEnd(); } catch (FileNotFoundException e) Console.WriteLine(“The file was not found”);
8
Excepties Meerdere catch-gedeelten voor verschillende soorten excepties try { StreamReader r = new StreamReader("test.txt"); string t = r.ReadToEnd(); } catch (FileNotFoundException e) Console.WriteLine("The file was not found"); catch (IOException e) Console.WriteLine("IOException during file read");
9
Excepties Exceptie-klassen zijn georganiseerd in een hierarchie
Bovenaan die hierarchie: de Exception-klasse Dus de volgende catch handelt alle mogelijke excepties af: catch (Exception e) { Console.WriteLine("Unknown exception occurred"); }
10
Excepties Je kunt zelf ook een exceptie “werpen”:
private Tile LoadTile(char tileType, int x, int y) { switch (tileType) case '.': return new Tile(); … default: throw new IOException("Unknown tile type"); }
11
Vertaalt exceptie naar string
Excepties En die kun je ergens anders weer afhandelen try { char c = textlines[i][j]; tiles[i,j] = LoadTile(c, i, j); } catch (IOException e) Console.WriteLine("Exception: " + e.ToString()); Vertaalt exceptie naar string
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.