- size_t t = zorba_script.find_last_of('/');
- if (t != std::string::npos)
- lQuery->setFileName(zorba_script.substr(0, t + 1));
-
- std::unique_ptr<std::istream> qfile(
- new std::ifstream(zorba_script.c_str()));
- Zorba_CompilerHints lHints;
- lQuery->compile(*qfile, lHints);
+ try {
+ size_t t = zorba_script.find_last_of('/');
+ if (t != std::string::npos)
+ lQuery->setFileName(zorba_script.substr(0, t + 1));
+ std::unique_ptr<std::istream> qfile(
+ new std::ifstream(zorba_script.c_str()));
+ Zorba_CompilerHints lHints;
+ lQuery->compile(*qfile, lHints);
+ } catch ( ZorbaException &e) {
+ std::string msg = "XQuery compile: ";
+ msg += e.what();
+ throw mp::filter::FilterException(msg);
+ }