do ÂściÂągnięcia > pobieranie > ebook > pdf > download

[ Pobierz całość w formacie PDF ]
.Nie wymaga siê od nich jednak, aby musz¹ jednak zawiera³yæ wy³¹cznie kodu,którego jedynym przeznaczeniem jest przekazywaniewy¿ej informacji o b³êdziedalej.Jak u¿ywane s¹ wyj¹tkiObszary kodu, które mog¹ powodowaæ problem, ujmowane s¹ w bloki try (spróbuj).Na przyk³ad:try{SomeDangerousFunction(); // potencjalnie niebezpieczna funkcja}Z kolei bloki catch (wychwyæ) obs³uguj¹ wyj¹tki zg³oszone w bloku try.Naprzyk³ad:try{SomeDangerousFunction();}catch(OutOfMemory){// podejmij jakieœ dzia³ania przeciwdzia³aj¹ce brakowi pamiêci}catch(FileNotFound){// podejmij czynnoœci przeciwdzia³aj¹ce brakowi pliku na dysku}Podstawowe etapy obs³ugiwania wyj¹tków to:1.Zidentyfikowanie tych obszarów programu, w których zaczynaj¹ siê operacjemog¹ce powodowaæ wyj¹tek i umieszczenie ich w blokach try.2.Stworzenie bloków catch wychwytuj¹cych zg³aszane wyj¹tki, porz¹dkuj¹cezaalokowan¹ pamiêæ i ewentualnie informuj¹ce u¿ytkownika.Listing 20.1przedstawia u¿ycie zarówno bloków try, jak i catch.Wyj¹tki s¹ obiektami u¿ywanymi do przekazywania informacji o problemie.Blok try jest blokiem ujêtym w nawiasy klamrowe, wewn¹trz którego mog¹ byæzg³aszane wyj¹tki.Blok catch jest blokiem wystêpuj¹cym bezpoœrednio po bloku try; s¹ w nimobs³ugiwane zg³oszone wyj¹tki.Gdy zostanie zg³oszony wyj¹tek, sterowanie przechodzi do w³aœciwego bloku catchnastêpuj¹cego po bie¿¹cym bloku try.UWAGA Niektóre bardzo stare kompilatory nie obs³uguj¹ wyj¹tków.Wyj¹tki s¹jednak czêœci¹ standardu ANSI C++ i wszystkie najnowsze wersje kompilatorów wpe³ni je obs³uguj¹.Jeœli posiadasz starszy kompilator, nie bêdziesz móg³skompilowaæ i uruchomiæ przyk³adów zawartych w tym rozdziale.Jednak mimo topowinieneœ przeczytaæ ca³¹ jego zawartoœæ i wróciæ do tego materia³u póŸniej,gdy zdobêdziesz nowsz¹ wersjê kompilatora.Listing 20.1.Zg³aszanie wyj¹tku0: #include1: using namespace std;2:3: const int DefaultSize = 10;4:5: class Array6: {7: public:8: // konstruktory9: Array(int itsSize = DefaultSize);10: Array(const Array &rhs);11: ~Array() { delete [] pType;}12:13: // operatory14: Array& operator=(const Array&);15: int& operator[](int offSet);16: const int& operator[](int offSet) const;17:18: // akcesory19: int GetitsSize() const { return itsSize; }20:21: // funkcja zaprzyjaŸniona22: friend ostream& operator [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • klimatyzatory.htw.pl