PDA

View Full Version : [C++] domanda niubba: come "esco" da una classe ?


franklar
20-11-2006, 13:23
Mi spiego meglio: vevo realizzare un assemblatore 8086 in c++, data la mia scarsa conoscenza di suddetto linguaggio sono "costretto" ad imparare e i problemi non mancano.

Per entrare nel merito:

il programma č composto essenzialmente di un editor e di un pulsante ASSEMBLA che fa partire le routine di assemblaggio.

La classe CAssemblatore č quindi chiamata dalla classe CTextEditorDoc cosė

m_pAssemblatore = new CAssemblatore(m_pSorgente, m_pListato);

ora voglio implementare una sorta di gestione degli errori di sintassi ( e altro ) in CAssemblatore. Riconosciuto l'errore spunta fuori una MessageBox che avverte di cosa e dove non va, ma il fatto che che al pių con break; esco dal ciclo in cui mi trovo, ma il loop che scandisce il sorgente dato in pasto a CAssemblatore continua imperterrito.
Io vorrei "uscire" da CAssemblatore immediatamente e tornare all'editor di testo, pensavo ai distruttori ma non sono riuscito a combinare granchč... come si fa ? :D

dupa
20-11-2006, 14:03
Mi spiego meglio: vevo realizzare un assemblatore 8086 in c++, data la mia scarsa conoscenza di suddetto linguaggio sono "costretto" ad imparare e i problemi non mancano.

Per entrare nel merito:

il programma č composto essenzialmente di un editor e di un pulsante ASSEMBLA che fa partire le routine di assemblaggio.

La classe CAssemblatore č quindi chiamata dalla classe CTextEditorDoc cosė

m_pAssemblatore = new CAssemblatore(m_pSorgente, m_pListato);

ora voglio implementare una sorta di gestione degli errori di sintassi ( e altro ) in CAssemblatore. Riconosciuto l'errore spunta fuori una MessageBox che avverte di cosa e dove non va, ma il fatto che che al pių con break; esco dal ciclo in cui mi trovo, ma il loop che scandisce il sorgente dato in pasto a CAssemblatore continua imperterrito.
Io vorrei "uscire" da CAssemblatore immediatamente e tornare all'editor di testo, pensavo ai distruttori ma non sono riuscito a combinare granchč... come si fa ? :D

quando arrivi nel punto incriminato, lanci una exception, e la catchi in un try esterno

franklar
20-11-2006, 17:26
quando arrivi nel punto incriminato, lanci una exception, e la catchi in un try esterno

Bene, so cosa fare. Adesso vedo un po' come si fa... :stordita: