Buongiorno.
Perdonatemi se scrivo un nuovo post per il medesimo argomento dell'altro giorno, ma quello sembrava un argomento chiuso e, forse per questo, nessuno è intervenuto dopo il mio ultimo messaggio. Il problema è il seguente. Ho inserito il blocco di istruzioni in try catch, come mi ha suggerito Weierstrass, ma continuo ad avere l'errore occasionale senza che entri nella routine catch. Per favore, mi dite dove sbaglio ? Ecco la routine:
while (true) {
try {
cout << "Dimensioni1 " << x << " " << y << " " << width << " " << height << endl;
Glib::RefPtr<Gdk::Window> root = Gdk::Window::get_default_root_window();
cout << "Dimensioni2 " << x << " " << y << " " << width << " " << height << endl;
Glib::RefPtr<Gdk::Pixbuf> immagine = Gdk::Pixbuf::create(root, x, y, width, height);
cout << "Dimensioni3 " << immagine->get_width() << " " << immagine->get_height() << endl;
HRvbl.ImmaginiVarie.UltimaImmagineCatturata = immagine;
cout << "Dimensioni4 " << HRvbl.ImmaginiVarie.UltimaImmagineCatturata->get_width() << " " <<
HRvbl.ImmaginiVarie.UltimaImmagineCatturata->get_height() << endl;
HRvbl.ImmaginiVarie.UltimaImmagineCatturata->save(HRvbl.cartellalavoro + "/Ultima immagine CATTURATA.bmp", "bmp");
HRvbl.ImmaginiVarie.ImmagineDaConvertire = HRvbl.ImmaginiVarie.UltimaImmagineCatturata;
ConvertiImmagine();
// HRvbl.HRnet_MAIN->do_320_ConvertiImmagine();
HRvbl.ImmaginiVarie.UltimaImmagineCatturataTXT = HRvbl.ImmaginiVarie.UltimaImmagineCONVERTITATXT;
// HRvbl.HRnet_0100->qt5UltimaImmagineCatturata->set(desk1);
HRvbl.swbloccato_320_CatturaImmagine = false;
cout << "Esce da CATTURAIMMAGINE" << endl;
break;
} catch (...) {
cout << ".................... Eccezione 10 su CatturaImmagine" << endl;
continue;
}
}
In esecuzione, ha lavorato bene per 31 immagini e al 32°tentativo ha prodotto la seguente risposta:
EEEx inizio loop 10
Controlla che non sia visualizzato nulla al posto dell'immagine ELIMINARE
Entra in CATTURAIMMAGINE
Dimensioni1 28 268 60 55
Dimensioni2 28 268 60 55
Gdk-Message: 18:43:50.812: HRnet: Fatal IO error 11 (Risorsa temporaneamente non disponibile) on X server :0.0.
Evidentemente non ho capito come si usa la tecnica try catch. Mi aiutate, per favore ?
Vi ringrazio.