Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

19.4.2 Makro virhekäsittelyn avuksi

Toisaalta usein voi tulla tilanne, jossa aliohjelman jatkaminen on kiinni siitä, tuleeko jostakin apualiohjelmasta virhe vai ei:

	...
	string virhe;
	virhe = luo_taulukko(max_koko);
	if ( virhe != "" ) return virhe;
	...

Tätä käsittelyä varten ei voida helpolla tehdä aliohjelmaa, mutta voidaan tehdä kyllä makro, jota voitaisiin kutsua:

	IF_ERR_RETURN(luo_taulukko(max_koko));

Makron toteutus olisi vaikkapa seuraavanlainen:

	#define IF_ERR_RETURN(v) { string virhe=(v); if ( virhe != "" ) return virhe; }

Tehtävä 19.162 IF_ERR_RETURN

Pura auki makrokutsu IF_ERR_RETURN(luo_taulukko(max_koko));


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys