1 /** @file 2 * @brief Custom Python exception handling. 3 */ 4 /* Warning: This file is generated by ./generate-python-exceptions 5 * - do not modify directly! 6 * 7 * Copyright (C) 2003,2004,2006,2007,2008,2009,2012 Olly Betts 8 * Copyright (C) 2007 Lemur Consulting Ltd 9 * Copyright (C) 2007 Richard Boulton 10 * 11 * This program is free software; you can redistribute it and/or 12 * modify it under the terms of the GNU General Public License as 13 * published by the Free Software Foundation; either version 2 of the 14 * License, or (at your option) any later version. 15 * 16 * This program is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU General Public License for more details. 20 * 21 * You should have received a copy of the GNU General Public License 22 * along with this program; if not, write to the Free Software 23 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 24 */ 25 26 namespace Xapian { 27 28 %exceptionclass Error; 29 %ignore Error::get_description; 30 %extend Error { 31 std::string __str__() const { 32 std::string desc($self->get_msg()); 33 if (!$self->get_context().empty()) { 34 desc += " (context: "; 35 desc += $self->get_context(); 36 desc += ')'; 37 } 38 if ($self->get_error_string()) { 39 desc += " ("; 40 desc += $self->get_error_string(); 41 desc += ')'; 42 } 43 return desc; 44 } 45 } 46 %exceptionclass LogicError; 47 %exceptionclass RuntimeError; 48 %exceptionclass AssertionError; 49 %exceptionclass InvalidArgumentError; 50 %exceptionclass InvalidOperationError; 51 %exceptionclass UnimplementedError; 52 %exceptionclass DatabaseError; 53 %exceptionclass DatabaseCorruptError; 54 %exceptionclass DatabaseCreateError; 55 %exceptionclass DatabaseLockError; 56 %exceptionclass DatabaseModifiedError; 57 %exceptionclass DatabaseOpeningError; 58 %exceptionclass DatabaseVersionError; 59 %exceptionclass DocNotFoundError; 60 %exceptionclass FeatureUnavailableError; 61 %exceptionclass InternalError; 62 %exceptionclass NetworkError; 63 %exceptionclass NetworkTimeoutError; 64 %exceptionclass QueryParserError; 65 %exceptionclass SerialisationError; 66 %exceptionclass RangeError; 67 %exceptionclass WildcardError; 68 %exceptionclass DatabaseNotFoundError; 69 %exceptionclass DatabaseClosedError; 70 } 71 %ignore Xapian::Error::Error(const Error&); 72 %include "xapian/error.h" 73 74 %{ 75 namespace Xapian { 76 SWIGEXPORT void SetPythonException() { 77 try { 78 throw; 79 } catch (Swig::DirectorException &) { 80 /* This happens if a director raised an exception. The standard SWIG 81 * director exception handling code sets the Python error state if 82 * necessary, so we don't need to do anything. */ 83 } catch (const Xapian::DatabaseClosedError &e) { 84 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseClosedError(e)), 85 SWIGTYPE_p_Xapian__DatabaseClosedError, 86 SWIG_POINTER_OWN), 87 "Xapian::DatabaseClosedError", 88 SWIGTYPE_p_Xapian__DatabaseClosedError); 89 } catch (const Xapian::DatabaseNotFoundError &e) { 90 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseNotFoundError(e)), 91 SWIGTYPE_p_Xapian__DatabaseNotFoundError, 92 SWIG_POINTER_OWN), 93 "Xapian::DatabaseNotFoundError", 94 SWIGTYPE_p_Xapian__DatabaseNotFoundError); 95 } catch (const Xapian::WildcardError &e) { 96 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::WildcardError(e)), 97 SWIGTYPE_p_Xapian__WildcardError, 98 SWIG_POINTER_OWN), 99 "Xapian::WildcardError", 100 SWIGTYPE_p_Xapian__WildcardError); 101 } catch (const Xapian::RangeError &e) { 102 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::RangeError(e)), 103 SWIGTYPE_p_Xapian__RangeError, 104 SWIG_POINTER_OWN), 105 "Xapian::RangeError", 106 SWIGTYPE_p_Xapian__RangeError); 107 } catch (const Xapian::SerialisationError &e) { 108 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::SerialisationError(e)), 109 SWIGTYPE_p_Xapian__SerialisationError, 110 SWIG_POINTER_OWN), 111 "Xapian::SerialisationError", 112 SWIGTYPE_p_Xapian__SerialisationError); 113 } catch (const Xapian::QueryParserError &e) { 114 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::QueryParserError(e)), 115 SWIGTYPE_p_Xapian__QueryParserError, 116 SWIG_POINTER_OWN), 117 "Xapian::QueryParserError", 118 SWIGTYPE_p_Xapian__QueryParserError); 119 } catch (const Xapian::NetworkTimeoutError &e) { 120 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::NetworkTimeoutError(e)), 121 SWIGTYPE_p_Xapian__NetworkTimeoutError, 122 SWIG_POINTER_OWN), 123 "Xapian::NetworkTimeoutError", 124 SWIGTYPE_p_Xapian__NetworkTimeoutError); 125 } catch (const Xapian::NetworkError &e) { 126 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::NetworkError(e)), 127 SWIGTYPE_p_Xapian__NetworkError, 128 SWIG_POINTER_OWN), 129 "Xapian::NetworkError", 130 SWIGTYPE_p_Xapian__NetworkError); 131 } catch (const Xapian::InternalError &e) { 132 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::InternalError(e)), 133 SWIGTYPE_p_Xapian__InternalError, 134 SWIG_POINTER_OWN), 135 "Xapian::InternalError", 136 SWIGTYPE_p_Xapian__InternalError); 137 } catch (const Xapian::FeatureUnavailableError &e) { 138 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::FeatureUnavailableError(e)), 139 SWIGTYPE_p_Xapian__FeatureUnavailableError, 140 SWIG_POINTER_OWN), 141 "Xapian::FeatureUnavailableError", 142 SWIGTYPE_p_Xapian__FeatureUnavailableError); 143 } catch (const Xapian::DocNotFoundError &e) { 144 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DocNotFoundError(e)), 145 SWIGTYPE_p_Xapian__DocNotFoundError, 146 SWIG_POINTER_OWN), 147 "Xapian::DocNotFoundError", 148 SWIGTYPE_p_Xapian__DocNotFoundError); 149 } catch (const Xapian::DatabaseVersionError &e) { 150 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseVersionError(e)), 151 SWIGTYPE_p_Xapian__DatabaseVersionError, 152 SWIG_POINTER_OWN), 153 "Xapian::DatabaseVersionError", 154 SWIGTYPE_p_Xapian__DatabaseVersionError); 155 } catch (const Xapian::DatabaseOpeningError &e) { 156 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseOpeningError(e)), 157 SWIGTYPE_p_Xapian__DatabaseOpeningError, 158 SWIG_POINTER_OWN), 159 "Xapian::DatabaseOpeningError", 160 SWIGTYPE_p_Xapian__DatabaseOpeningError); 161 } catch (const Xapian::DatabaseModifiedError &e) { 162 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseModifiedError(e)), 163 SWIGTYPE_p_Xapian__DatabaseModifiedError, 164 SWIG_POINTER_OWN), 165 "Xapian::DatabaseModifiedError", 166 SWIGTYPE_p_Xapian__DatabaseModifiedError); 167 } catch (const Xapian::DatabaseLockError &e) { 168 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseLockError(e)), 169 SWIGTYPE_p_Xapian__DatabaseLockError, 170 SWIG_POINTER_OWN), 171 "Xapian::DatabaseLockError", 172 SWIGTYPE_p_Xapian__DatabaseLockError); 173 } catch (const Xapian::DatabaseCreateError &e) { 174 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseCreateError(e)), 175 SWIGTYPE_p_Xapian__DatabaseCreateError, 176 SWIG_POINTER_OWN), 177 "Xapian::DatabaseCreateError", 178 SWIGTYPE_p_Xapian__DatabaseCreateError); 179 } catch (const Xapian::DatabaseCorruptError &e) { 180 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseCorruptError(e)), 181 SWIGTYPE_p_Xapian__DatabaseCorruptError, 182 SWIG_POINTER_OWN), 183 "Xapian::DatabaseCorruptError", 184 SWIGTYPE_p_Xapian__DatabaseCorruptError); 185 } catch (const Xapian::DatabaseError &e) { 186 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseError(e)), 187 SWIGTYPE_p_Xapian__DatabaseError, 188 SWIG_POINTER_OWN), 189 "Xapian::DatabaseError", 190 SWIGTYPE_p_Xapian__DatabaseError); 191 } catch (const Xapian::UnimplementedError &e) { 192 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::UnimplementedError(e)), 193 SWIGTYPE_p_Xapian__UnimplementedError, 194 SWIG_POINTER_OWN), 195 "Xapian::UnimplementedError", 196 SWIGTYPE_p_Xapian__UnimplementedError); 197 } catch (const Xapian::InvalidOperationError &e) { 198 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::InvalidOperationError(e)), 199 SWIGTYPE_p_Xapian__InvalidOperationError, 200 SWIG_POINTER_OWN), 201 "Xapian::InvalidOperationError", 202 SWIGTYPE_p_Xapian__InvalidOperationError); 203 } catch (const Xapian::InvalidArgumentError &e) { 204 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::InvalidArgumentError(e)), 205 SWIGTYPE_p_Xapian__InvalidArgumentError, 206 SWIG_POINTER_OWN), 207 "Xapian::InvalidArgumentError", 208 SWIGTYPE_p_Xapian__InvalidArgumentError); 209 } catch (const Xapian::AssertionError &e) { 210 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::AssertionError(e)), 211 SWIGTYPE_p_Xapian__AssertionError, 212 SWIG_POINTER_OWN), 213 "Xapian::AssertionError", 214 SWIGTYPE_p_Xapian__AssertionError); 215 } catch (const Xapian::RuntimeError &e) { 216 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::RuntimeError(e)), 217 SWIGTYPE_p_Xapian__RuntimeError, 218 SWIG_POINTER_OWN), 219 "Xapian::RuntimeError", 220 SWIGTYPE_p_Xapian__RuntimeError); 221 } catch (const Xapian::LogicError &e) { 222 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::LogicError(e)), 223 SWIGTYPE_p_Xapian__LogicError, 224 SWIG_POINTER_OWN), 225 "Xapian::LogicError", 226 SWIGTYPE_p_Xapian__LogicError); 227 } catch (const Xapian::Error &e) { 228 SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::Error(e)), 229 SWIGTYPE_p_Xapian__Error, 230 SWIG_POINTER_OWN), 231 "Xapian::Error", 232 SWIGTYPE_p_Xapian__Error); 233 } catch (const std::exception& e) { 234 SWIG_Error(SWIG_RuntimeError, e.what()); 235 } catch (...) { 236 SWIG_Error(SWIG_UnknownError, "unknown error in Xapian"); 237 } 238 } 239 } 240 %} 241 242 /* Functions and methods which are marked as "nothrow": */ 243 %exception Xapian::Compactor::~Compactor; 244 %exception Xapian::Compactor::get_constinfo_(); 245 %exception Xapian::Database::~Database; 246 %exception Xapian::Database::postlist_end(const std::string &) const; 247 %exception Xapian::Database::termlist_end(Xapian::docid) const; 248 %exception Xapian::Database::positionlist_end(Xapian::docid, const std::string &) const; 249 %exception Xapian::Database::allterms_end(const std::string & = std::string()) const; 250 %exception Xapian::Database::valuestream_end(Xapian::valueno) const; 251 %exception Xapian::Database::spellings_end() const; 252 %exception Xapian::Database::synonyms_end(const std::string &) const; 253 %exception Xapian::Database::synonym_keys_end(const std::string & = std::string()) const; 254 %exception Xapian::Database::metadata_keys_end(const std::string & = std::string()) const; 255 %exception Xapian::WritableDatabase::~WritableDatabase; 256 %exception Xapian::Document::~Document; 257 %exception Xapian::Document::termlist_end() const; 258 %exception Xapian::Document::values_end() const; 259 %exception Xapian::RSet::~RSet; 260 %exception Xapian::MatchDecider::~MatchDecider; 261 %exception Xapian::Enquire::~Enquire; 262 %exception Xapian::Enquire::get_matching_terms_end(Xapian::docid ) const; 263 %exception Xapian::Enquire::get_matching_terms_end(const MSetIterator & ) const; 264 %exception Xapian::Error::~Error; 265 %exception Xapian::Error::get_type() const; 266 %exception Xapian::Error::get_msg() const; 267 %exception Xapian::Error::get_context() const; 268 %exception Xapian::LogicError::~LogicError; 269 %exception Xapian::RuntimeError::~RuntimeError; 270 %exception Xapian::AssertionError::~AssertionError; 271 %exception Xapian::InvalidArgumentError::~InvalidArgumentError; 272 %exception Xapian::InvalidOperationError::~InvalidOperationError; 273 %exception Xapian::UnimplementedError::~UnimplementedError; 274 %exception Xapian::DatabaseError::~DatabaseError; 275 %exception Xapian::DatabaseCorruptError::~DatabaseCorruptError; 276 %exception Xapian::DatabaseCreateError::~DatabaseCreateError; 277 %exception Xapian::DatabaseLockError::~DatabaseLockError; 278 %exception Xapian::DatabaseModifiedError::~DatabaseModifiedError; 279 %exception Xapian::DatabaseOpeningError::~DatabaseOpeningError; 280 %exception Xapian::DatabaseVersionError::~DatabaseVersionError; 281 %exception Xapian::DocNotFoundError::~DocNotFoundError; 282 %exception Xapian::FeatureUnavailableError::~FeatureUnavailableError; 283 %exception Xapian::InternalError::~InternalError; 284 %exception Xapian::NetworkError::~NetworkError; 285 %exception Xapian::NetworkTimeoutError::~NetworkTimeoutError; 286 %exception Xapian::QueryParserError::~QueryParserError; 287 %exception Xapian::SerialisationError::~SerialisationError; 288 %exception Xapian::RangeError::~RangeError; 289 %exception Xapian::WildcardError::~WildcardError; 290 %exception Xapian::DatabaseNotFoundError::~DatabaseNotFoundError; 291 %exception Xapian::DatabaseClosedError::~DatabaseClosedError; 292 %exception Xapian::ErrorHandler::~ErrorHandler; 293 %exception Xapian::ErrorHandler::ErrorHandler(); 294 %exception Xapian::ESet::~ESet; 295 %exception Xapian::ESetIterator::~ESetIterator; 296 %exception Xapian::ESetIterator::operator==(const ESetIterator &a, const ESetIterator &b); 297 %exception Xapian::ESetIterator::operator!=(const ESetIterator &a, const ESetIterator &b); 298 %exception Xapian::ESetIterator::operator<(const ESetIterator &a, const ESetIterator &b); 299 %exception Xapian::ESetIterator::operator>(const ESetIterator &a, const ESetIterator &b); 300 %exception Xapian::ESetIterator::operator>=(const ESetIterator &a, const ESetIterator &b); 301 %exception Xapian::ESetIterator::operator<=(const ESetIterator &a, const ESetIterator &b); 302 %exception Xapian::ExpandDecider::~ExpandDecider; 303 %exception Xapian::ExpandDeciderAnd::~ExpandDeciderAnd; 304 %exception Xapian::ExpandDeciderFilterTerms::~ExpandDeciderFilterTerms; 305 %exception Xapian::ExpandDeciderFilterPrefix::~ExpandDeciderFilterPrefix; 306 %exception Xapian::ExpandDeciderFilterPrefix::miles_to_metres(double miles); 307 %exception Xapian::ExpandDeciderFilterPrefix::metres_to_miles(double metres); 308 %exception Xapian::ExpandDeciderFilterPrefix::LatLongCoord(); 309 %exception Xapian::ExpandDeciderFilterPrefix::operator<(const LatLongCoord & other) const; 310 %exception Xapian::LatLongCoordsIterator::~LatLongCoordsIterator; 311 %exception Xapian::LatLongCoords::~LatLongCoords; 312 %exception Xapian::LatLongMetric::~LatLongMetric; 313 %exception Xapian::GreatCircleMetric::~GreatCircleMetric; 314 %exception Xapian::LatLongDistancePostingSource::~LatLongDistancePostingSource; 315 %exception Xapian::LatLongDistanceKeyMaker::~LatLongDistanceKeyMaker; 316 %exception Xapian::opt_intrusive_base::~opt_intrusive_base; 317 %exception Xapian::KeyMaker::~KeyMaker; 318 %exception Xapian::MultiValueKeyMaker::~MultiValueKeyMaker; 319 %exception Xapian::MatchSpy::~MatchSpy; 320 %exception Xapian::MatchSpy::MatchSpy(); 321 %exception Xapian::ValueCountMatchSpy::~ValueCountMatchSpy; 322 %exception Xapian::ValueCountMatchSpy::get_total() const; 323 %exception Xapian::ValueCountMatchSpy::values_end() const; 324 %exception Xapian::ValueCountMatchSpy::top_values_end(size_t) const; 325 %exception Xapian::MSet::~MSet; 326 %exception Xapian::MSetIterator::~MSetIterator; 327 %exception Xapian::MSetIterator::operator==(const MSetIterator &a, const MSetIterator &b); 328 %exception Xapian::MSetIterator::operator!=(const MSetIterator &a, const MSetIterator &b); 329 %exception Xapian::MSetIterator::operator<(const MSetIterator &a, const MSetIterator &b); 330 %exception Xapian::MSetIterator::operator>(const MSetIterator &a, const MSetIterator &b); 331 %exception Xapian::MSetIterator::operator>=(const MSetIterator &a, const MSetIterator &b); 332 %exception Xapian::MSetIterator::operator<=(const MSetIterator &a, const MSetIterator &b); 333 %exception Xapian::PositionIterator::~PositionIterator; 334 %exception Xapian::PositionIterator::PositionIterator(); 335 %exception Xapian::PositionIterator::operator==(const PositionIterator &a, const PositionIterator &b); 336 %exception Xapian::PositionIterator::operator!=(const PositionIterator &a, const PositionIterator &b); 337 %exception Xapian::PostingIterator::~PostingIterator; 338 %exception Xapian::PostingIterator::PostingIterator(); 339 %exception Xapian::PostingIterator::positionlist_end() const; 340 %exception Xapian::PostingIterator::operator==(const PostingIterator &a, const PostingIterator &b); 341 %exception Xapian::PostingIterator::operator!=(const PostingIterator &a, const PostingIterator &b); 342 %exception Xapian::PostingSource::~PostingSource; 343 %exception Xapian::PostingSource::PostingSource(); 344 %exception Xapian::PostingSource::get_maxweight() const; 345 %exception Xapian::ValuePostingSource::~ValuePostingSource; 346 %exception Xapian::ValueWeightPostingSource::~ValueWeightPostingSource; 347 %exception Xapian::DecreasingValueWeightPostingSource::~DecreasingValueWeightPostingSource; 348 %exception Xapian::ValueMapPostingSource::~ValueMapPostingSource; 349 %exception Xapian::FixedWeightPostingSource::~FixedWeightPostingSource; 350 %exception Xapian::Query::~Query; 351 %exception Xapian::Query::Query(); 352 %exception Xapian::Query::get_terms_end() const; 353 %exception Xapian::Query::get_unique_terms_end() const; 354 %exception Xapian::Query::get_length() const; 355 %exception Xapian::Query::empty() const; 356 %exception Xapian::Query::get_type() const; 357 %exception Xapian::Query::get_num_subqueries() const; 358 %exception Xapian::Query::Internal(); 359 %exception Xapian::Query::get_length() const; 360 %exception Xapian::Query::get_type() const; 361 %exception Xapian::Query::get_num_subqueries() const; 362 %exception Xapian::Stopper::~Stopper; 363 %exception Xapian::SimpleStopper::~SimpleStopper; 364 %exception Xapian::RangeProcessor::~RangeProcessor; 365 %exception Xapian::DateRangeProcessor::~DateRangeProcessor; 366 %exception Xapian::NumberRangeProcessor::~NumberRangeProcessor; 367 %exception Xapian::ValueRangeProcessor::~ValueRangeProcessor; 368 %exception Xapian::FieldProcessor::~FieldProcessor; 369 %exception Xapian::QueryParser::~QueryParser; 370 %exception Xapian::QueryParser::stoplist_end() const; 371 %exception Xapian::QueryParser::unstem_end(const std::string &) const; 372 %exception Xapian::QueryParser::sortable_serialise_(double value, char * buf); 373 %exception Xapian::QueryParser::sortable_unserialise(const std::string & serialised); 374 %exception Xapian::Registry::~Registry; 375 %exception Xapian::StemImplementation::~StemImplementation; 376 %exception Xapian::Stem::~Stem; 377 %exception Xapian::TermGenerator::~TermGenerator; 378 %exception Xapian::TermIterator::~TermIterator; 379 %exception Xapian::TermIterator::TermIterator(); 380 %exception Xapian::TermIterator::positionlist_end() const; 381 %exception Xapian::TermIterator::operator==(const TermIterator &a, const TermIterator &b); 382 %exception Xapian::TermIterator::operator!=(const TermIterator &a, const TermIterator &b); 383 %exception Xapian::Utf8Iterator::~Utf8Iterator; 384 %exception Xapian::Utf8Iterator::calculate_sequence_length() const; 385 %exception Xapian::Utf8Iterator::Utf8Iterator(); 386 %exception Xapian::Utf8Iterator::operator*() const; 387 %exception Xapian::Utf8Iterator::strict_deref() const; 388 %exception Xapian::Utf8Iterator::operator==(const Utf8Iterator& other) const; 389 %exception Xapian::Utf8Iterator::operator!=(const Utf8Iterator& other) const; 390 %exception Xapian::Utf8Iterator::get_character_info(unsigned ch); 391 %exception Xapian::ValueIterator::~ValueIterator; 392 %exception Xapian::ValueIterator::ValueIterator(); 393 %exception Xapian::ValueIterator::operator==(const ValueIterator &a, const ValueIterator &b); 394 %exception Xapian::ValueIterator::operator!=(const ValueIterator &a, const ValueIterator &b); 395 %exception Xapian::ValueSetMatchDecider::~ValueSetMatchDecider; 396 %exception Xapian::Weight::~Weight; 397 %exception Xapian::BoolWeight::~BoolWeight; 398 %exception Xapian::TfIdfWeight::~TfIdfWeight; 399 %exception Xapian::BM25Weight::~BM25Weight; 400 %exception Xapian::BM25PlusWeight::~BM25PlusWeight; 401 %exception Xapian::TradWeight::~TradWeight; 402 %exception Xapian::InL2Weight::~InL2Weight; 403 %exception Xapian::IfB2Weight::~IfB2Weight; 404 %exception Xapian::IneB2Weight::~IneB2Weight; 405 %exception Xapian::BB2Weight::~BB2Weight; 406 %exception Xapian::DLHWeight::~DLHWeight; 407 %exception Xapian::PL2Weight::~PL2Weight; 408 %exception Xapian::PL2PlusWeight::~PL2PlusWeight; 409 %exception Xapian::DPHWeight::~DPHWeight; 410 %exception Xapian::LMWeight::~LMWeight; 411 %exception Xapian::CoordWeight::~CoordWeight; 412 413 %exception { 414 try { 415 $action 416 } catch (...) { 417 Xapian::SetPythonException(); 418 SWIG_fail; 419 } 420 } 421 422 /* If a Python error is raised by a call to a director function, the following 423 * code should cause a C++ exception to be thrown. 424 */ 425 %feature("director:except") { 426 if ($error != NULL) { 427 throw Swig::DirectorMethodException(); 428 } 429 } 430 431 /* vim:syntax=cpp:set noexpandtab: */ 432