diff --git a/components/iscesys/ImageApi/DataAccessor/bindings/DataAccessormodule.cpp b/components/iscesys/ImageApi/DataAccessor/bindings/DataAccessormodule.cpp index 2f34c76..6a0a114 100644 --- a/components/iscesys/ImageApi/DataAccessor/bindings/DataAccessormodule.cpp +++ b/components/iscesys/ImageApi/DataAccessor/bindings/DataAccessormodule.cpp @@ -136,8 +136,17 @@ createAccessor_C(PyObject* self, PyObject* args) } if (casterCh[0] == '\0') { - ptDataAccessor = (uint64_t) AF->createAccessor(filename, filemode, size, - bands, width, scheme); + try + { + ptDataAccessor = (uint64_t) AF->createAccessor(filename, filemode, size, + bands, width, scheme); + } + catch(const std::exception& e) + { + PyErr_SetString(PyExc_OSError, e.what()); + return NULL; + } + } else if (casterCh[0] != '\0' && PyDict_Size(dict) == 0) { diff --git a/components/iscesys/ImageApi/InterleavedAccessor/include/InterleavedBase.h b/components/iscesys/ImageApi/InterleavedAccessor/include/InterleavedBase.h index bba0790..fc66f59 100644 --- a/components/iscesys/ImageApi/InterleavedAccessor/include/InterleavedBase.h +++ b/components/iscesys/ImageApi/InterleavedAccessor/include/InterleavedBase.h @@ -10,6 +10,7 @@ #include #include +#include using namespace std; diff --git a/components/iscesys/ImageApi/InterleavedAccessor/src/GDALAccessor.cpp b/components/iscesys/ImageApi/InterleavedAccessor/src/GDALAccessor.cpp index 4cb0a4c..2ae9c3c 100644 --- a/components/iscesys/ImageApi/InterleavedAccessor/src/GDALAccessor.cpp +++ b/components/iscesys/ImageApi/InterleavedAccessor/src/GDALAccessor.cpp @@ -69,21 +69,21 @@ GDALAccessor::openFile (string filename, string accessMode, GDALDataset ** fd) if (accessMode == "read" || accessMode == "READ") { std::cout << "GDAL open (R): " << filename << std::endl; - (*fd) = (GDALDataset *) GDALOpenShared (filename.c_str (), GA_ReadOnly); - if ((*fd) == NULL) - { - cout << "Error. Cannot open the file " << filename << " in " - << accessMode << " mode." << endl; - ERR_MESSAGE - ; - } + (*fd) = (GDALDataset *) GDALOpenShared (filename.c_str (), GA_ReadOnly); + if ((*fd) == NULL) + { + string errMsg = "Cannot open the file " + filename + " in " + + accessMode + " mode."; + throw runtime_error(errMsg); + // ERR_MESSAGE; + } } else { - cout << "Error. Only read mode is available and not " << accessMode - << " mode." << endl; - ERR_MESSAGE - ; + string errMsg = "Error. Only read mode is available and not " + accessMode + " mode."; + throw runtime_error(errMsg); + // ERR_MESSAGE + // ; } } diff --git a/components/iscesys/ImageApi/InterleavedAccessor/src/InterleavedAccessor.cpp b/components/iscesys/ImageApi/InterleavedAccessor/src/InterleavedAccessor.cpp index 5951606..498dae0 100644 --- a/components/iscesys/ImageApi/InterleavedAccessor/src/InterleavedAccessor.cpp +++ b/components/iscesys/ImageApi/InterleavedAccessor/src/InterleavedAccessor.cpp @@ -112,8 +112,8 @@ void InterleavedAccessor::openFile(string filename, string accessMode, fstream fd.open(filename.c_str(), ios_base::in); if(fd.fail()) { - cout << "Error. Cannot open the file " << filename << " in " << accessMode << " mode." <