On Apr 6, 2011, at 11:04 AM, canduc17 wrote:

> I have this incorrect code:
> try
>       {
>       myDataset = (GDALDataset *) GDALOpen( "myimg", GA_ReadOnly );
>       }
>       catch(int n)
>       {
>               cout << "File not existent!" << endl;
>                return 14;
>       }
> 


You need to implement your own error handler if you want GDAL to throw 
exceptions when it can open something.

The following example throws an error if there was a CE_Failure or CE_Fatal and 
merely puts out the debug message if there is debug info.

> #include <gdal.h>
> #include <stdexcept>
> #include <sstream>
> #include <iostream>
> void CPL_STDCALL HobusGDALErrorHandler(CPLErr eErrClass, int err_no, const 
> char *msg);
> 
> void CPL_STDCALL HobusGDALErrorHandler(CPLErr eErrClass, int err_no, const 
> char *msg)
> {
>     std::ostringstream oss;
>     
>     if (eErrClass == CE_Failure || eErrClass == CE_Fatal) {
>         oss <<"GDAL Failure number=" << err_no << ": " << msg;
>         throw exception(oss.str());
>     } else if (eErrClass == CE_Debug) {
>         std::cout << "GDAL Debug: " << msg << std::endl;
>     } else {
>         return;
>     }
> }

Hope this helps,

Howard_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to