1 // This may look like C code, but it is really -*- C++ -*- 2 // 3 // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002, 2003 4 // Copyright Dirk Lemstra 2014-2015 5 // 6 // Implementation of Exception and derived classes 7 // 8 9 #define MAGICKCORE_IMPLEMENTATION 1 10 #define MAGICK_PLUSPLUS_IMPLEMENTATION 1 11 12 #include "Magick++/Include.h" 13 #include <string> 14 #include <errno.h> 15 #include <string.h> 16 17 using namespace std; 18 19 #include "Magick++/Exception.h" 20 21 Magick::Exception::Exception(const std::string& what_) 22 : std::exception(), 23 _what(what_), 24 _nested((Exception *) NULL) 25 { 26 } 27 28 Magick::Exception::Exception(const std::string& what_, 29 Exception* nested_) 30 : std::exception(), 31 _what(what_), 32 _nested(nested_) 33 { 34 } 35 36 Magick::Exception::Exception(const Magick::Exception& original_) 37 : exception(original_), 38 _what(original_._what), 39 _nested((Exception *) NULL) 40 { 41 } 42 43 Magick::Exception::~Exception() throw() 44 { 45 if (_nested != (Exception *) NULL) 46 delete _nested; 47 } 48 49 Magick::Exception& Magick::Exception::operator=( 50 const Magick::Exception& original_) 51 { 52 if (this != &original_) 53 this->_what=original_._what; 54 return(*this); 55 } 56 57 const char* Magick::Exception::what() const throw() 58 { 59 return(_what.c_str()); 60 } 61 62 const Magick::Exception* Magick::Exception::nested() const throw() 63 { 64 return(_nested); 65 } 66 67 void Magick::Exception::nested(Exception* nested_) throw() 68 { 69 _nested=nested_; 70 } 71 72 Magick::Error::Error(const std::string& what_) 73 : Exception(what_) 74 { 75 } 76 77 Magick::Error::Error(const std::string& what_,Exception *nested_) 78 : Exception(what_,nested_) 79 { 80 } 81 82 Magick::Error::~Error() throw() 83 { 84 } 85 86 Magick::ErrorBlob::ErrorBlob(const std::string& what_) 87 : Error(what_) 88 { 89 } 90 91 Magick::ErrorBlob::ErrorBlob(const std::string& what_,Exception *nested_) 92 : Error(what_,nested_) 93 { 94 } 95 96 Magick::ErrorBlob::~ErrorBlob() throw() 97 { 98 } 99 100 Magick::ErrorCache::ErrorCache(const std::string& what_) 101 : Error(what_) 102 { 103 } 104 105 Magick::ErrorCache::ErrorCache(const std::string& what_,Exception *nested_) 106 : Error(what_,nested_) 107 { 108 } 109 110 Magick::ErrorCache::~ErrorCache() throw() 111 { 112 } 113 114 Magick::ErrorCoder::ErrorCoder(const std::string& what_) 115 : Error(what_) 116 { 117 } 118 119 Magick::ErrorCoder::ErrorCoder(const std::string& what_,Exception *nested_) 120 : Error(what_,nested_) 121 { 122 } 123 124 Magick::ErrorCoder::~ErrorCoder() throw() 125 { 126 } 127 128 Magick::ErrorConfigure::ErrorConfigure(const std::string& what_) 129 : Error(what_) 130 { 131 } 132 133 Magick::ErrorConfigure::ErrorConfigure(const std::string& what_, 134 Exception *nested_) 135 : Error(what_,nested_) 136 { 137 } 138 139 Magick::ErrorConfigure::~ErrorConfigure() throw() 140 { 141 } 142 143 Magick::ErrorCorruptImage::ErrorCorruptImage(const std::string& what_) 144 : Error(what_) 145 { 146 } 147 148 Magick::ErrorCorruptImage::ErrorCorruptImage(const std::string& what_, 149 Exception *nested_) 150 : Error(what_,nested_) 151 { 152 } 153 154 Magick::ErrorCorruptImage::~ErrorCorruptImage() throw() 155 { 156 } 157 158 Magick::ErrorDelegate::ErrorDelegate(const std::string& what_) 159 : Error(what_) 160 { 161 } 162 163 Magick::ErrorDelegate::ErrorDelegate(const std::string& what_, 164 Exception *nested_) 165 : Error(what_,nested_) 166 { 167 } 168 169 Magick::ErrorDelegate::~ErrorDelegate()throw() 170 { 171 } 172 173 Magick::ErrorDraw::ErrorDraw(const std::string& what_) 174 : Error(what_) 175 { 176 } 177 178 Magick::ErrorDraw::ErrorDraw(const std::string& what_,Exception *nested_) 179 : Error(what_,nested_) 180 { 181 } 182 183 Magick::ErrorDraw::~ErrorDraw() throw() 184 { 185 } 186 187 Magick::ErrorFileOpen::ErrorFileOpen(const std::string& what_) 188 : Error(what_) 189 { 190 } 191 192 Magick::ErrorFileOpen::~ErrorFileOpen() throw() 193 { 194 } 195 196 Magick::ErrorFileOpen::ErrorFileOpen(const std::string& what_, 197 Exception *nested_) 198 : Error(what_,nested_) 199 { 200 } 201 202 203 Magick::ErrorImage::ErrorImage(const std::string& what_) 204 : Error(what_) 205 { 206 } 207 208 Magick::ErrorImage::ErrorImage(const std::string& what_,Exception *nested_) 209 : Error(what_,nested_) 210 { 211 } 212 213 Magick::ErrorImage::~ErrorImage() throw() 214 { 215 } 216 217 Magick::ErrorMissingDelegate::ErrorMissingDelegate(const std::string& what_) 218 : Error(what_) 219 { 220 } 221 222 Magick::ErrorMissingDelegate::ErrorMissingDelegate(const std::string& what_, 223 Exception *nested_) 224 : Error(what_,nested_) 225 { 226 } 227 228 Magick::ErrorMissingDelegate::~ErrorMissingDelegate() throw () 229 { 230 } 231 232 Magick::ErrorModule::ErrorModule(const std::string& what_) 233 : Error(what_) 234 { 235 } 236 237 Magick::ErrorModule::ErrorModule(const std::string& what_,Exception *nested_) 238 : Error(what_,nested_) 239 { 240 } 241 242 Magick::ErrorModule::~ErrorModule() throw() 243 { 244 } 245 246 Magick::ErrorMonitor::ErrorMonitor(const std::string& what_) 247 : Error(what_) 248 { 249 } 250 251 Magick::ErrorMonitor::ErrorMonitor(const std::string& what_,Exception *nested_) 252 : Error(what_,nested_) 253 { 254 } 255 256 Magick::ErrorMonitor::~ErrorMonitor() throw() 257 { 258 } 259 260 Magick::ErrorOption::ErrorOption(const std::string& what_) 261 : Error(what_) 262 { 263 } 264 265 Magick::ErrorOption::ErrorOption(const std::string& what_,Exception *nested_) 266 : Error(what_,nested_) 267 { 268 } 269 270 Magick::ErrorOption::~ErrorOption() throw() 271 { 272 } 273 274 Magick::ErrorPolicy::ErrorPolicy(const std::string& what_) 275 : Error(what_) 276 { 277 } 278 279 Magick::ErrorPolicy::ErrorPolicy(const std::string& what_,Exception *nested_) 280 : Error(what_,nested_) 281 { 282 } 283 284 Magick::ErrorPolicy::~ErrorPolicy() throw() 285 { 286 } 287 288 289 Magick::ErrorRegistry::ErrorRegistry(const std::string& what_) 290 : Error(what_) 291 { 292 } 293 294 Magick::ErrorRegistry::ErrorRegistry(const std::string& what_, 295 Exception *nested_) 296 : Error(what_,nested_) 297 { 298 } 299 300 Magick::ErrorRegistry::~ErrorRegistry() throw() 301 { 302 } 303 304 Magick::ErrorResourceLimit::ErrorResourceLimit(const std::string& what_) 305 : Error(what_) 306 { 307 } 308 309 Magick::ErrorResourceLimit::ErrorResourceLimit(const std::string& what_, 310 Exception *nested_) 311 : Error(what_,nested_) 312 { 313 } 314 315 Magick::ErrorResourceLimit::~ErrorResourceLimit() throw() 316 { 317 } 318 319 Magick::ErrorStream::ErrorStream(const std::string& what_) 320 : Error(what_) 321 { 322 } 323 324 Magick::ErrorStream::ErrorStream(const std::string& what_,Exception *nested_) 325 : Error(what_,nested_) 326 { 327 } 328 329 Magick::ErrorStream::~ErrorStream() throw() 330 { 331 } 332 333 Magick::ErrorType::ErrorType(const std::string& what_) 334 : Error(what_) 335 { 336 } 337 338 Magick::ErrorType::ErrorType(const std::string& what_,Exception *nested_) 339 : Error(what_,nested_) 340 { 341 } 342 343 Magick::ErrorType::~ErrorType() throw() 344 { 345 } 346 347 Magick::ErrorUndefined::ErrorUndefined(const std::string& what_) 348 : Error(what_) 349 { 350 } 351 352 Magick::ErrorUndefined::ErrorUndefined(const std::string& what_, 353 Exception *nested_) 354 : Error(what_,nested_) 355 { 356 } 357 358 Magick::ErrorUndefined::~ErrorUndefined() throw() 359 { 360 } 361 362 Magick::ErrorXServer::ErrorXServer(const std::string& what_) 363 : Error(what_) 364 { 365 } 366 367 Magick::ErrorXServer::ErrorXServer(const std::string& what_,Exception *nested_) 368 : Error(what_,nested_) 369 { 370 } 371 372 Magick::ErrorXServer::~ErrorXServer() throw () 373 { 374 } 375 376 Magick::Warning::Warning(const std::string& what_) 377 : Exception(what_) 378 { 379 } 380 381 Magick::Warning::Warning(const std::string& what_,Exception *nested_) 382 : Exception(what_,nested_) 383 { 384 } 385 386 Magick::Warning::~Warning() throw() 387 { 388 } 389 390 Magick::WarningBlob::WarningBlob(const std::string& what_) 391 : Warning(what_) 392 { 393 } 394 395 Magick::WarningBlob::WarningBlob(const std::string& what_,Exception *nested_) 396 : Warning(what_,nested_) 397 { 398 } 399 400 Magick::WarningBlob::~WarningBlob() throw() 401 { 402 } 403 404 Magick::WarningCache::WarningCache(const std::string& what_) 405 : Warning(what_) 406 { 407 } 408 409 Magick::WarningCache::WarningCache(const std::string& what_,Exception *nested_) 410 : Warning(what_,nested_) 411 { 412 } 413 414 Magick::WarningCache::~WarningCache() throw() 415 { 416 } 417 418 Magick::WarningCoder::WarningCoder(const std::string& what_) 419 : Warning(what_) 420 { 421 } 422 423 Magick::WarningCoder::WarningCoder(const std::string& what_,Exception *nested_) 424 : Warning(what_,nested_) 425 { 426 } 427 428 Magick::WarningCoder::~WarningCoder() throw() 429 { 430 } 431 432 Magick::WarningConfigure::WarningConfigure(const std::string& what_) 433 : Warning(what_) 434 { 435 } 436 437 Magick::WarningConfigure::WarningConfigure(const std::string& what_, 438 Exception *nested_) 439 : Warning(what_,nested_) 440 { 441 } 442 443 Magick::WarningConfigure::~WarningConfigure() throw() 444 { 445 } 446 447 Magick::WarningCorruptImage::WarningCorruptImage(const std::string& what_) 448 : Warning(what_) 449 { 450 } 451 452 Magick::WarningCorruptImage::WarningCorruptImage(const std::string& what_, 453 Exception *nested_) 454 : Warning(what_,nested_) 455 { 456 } 457 458 Magick::WarningCorruptImage::~WarningCorruptImage() throw() 459 { 460 } 461 462 Magick::WarningDelegate::WarningDelegate(const std::string& what_) 463 : Warning(what_) 464 { 465 } 466 467 Magick::WarningDelegate::WarningDelegate(const std::string& what_, 468 Exception *nested_) 469 : Warning(what_,nested_) 470 { 471 } 472 473 Magick::WarningDelegate::~WarningDelegate() throw() 474 { 475 } 476 477 Magick::WarningDraw::WarningDraw(const std::string& what_) 478 : Warning(what_) 479 { 480 } 481 482 Magick::WarningDraw::WarningDraw(const std::string& what_,Exception *nested_) 483 : Warning(what_,nested_) 484 { 485 } 486 487 Magick::WarningDraw::~WarningDraw() throw() 488 { 489 } 490 491 Magick::WarningFileOpen::WarningFileOpen(const std::string& what_) 492 : Warning(what_) 493 { 494 } 495 496 Magick::WarningFileOpen::WarningFileOpen(const std::string& what_, 497 Exception *nested_) 498 : Warning(what_,nested_) 499 { 500 } 501 502 Magick::WarningFileOpen::~WarningFileOpen() throw() 503 { 504 } 505 506 Magick::WarningImage::WarningImage(const std::string& what_) 507 : Warning(what_) 508 { 509 } 510 511 Magick::WarningImage::WarningImage(const std::string& what_,Exception *nested_) 512 : Warning(what_,nested_) 513 { 514 } 515 516 Magick::WarningImage::~WarningImage() throw() 517 { 518 } 519 520 Magick::WarningMissingDelegate::WarningMissingDelegate( 521 const std::string& what_) 522 : Warning(what_) 523 { 524 } 525 526 Magick::WarningMissingDelegate::WarningMissingDelegate( 527 const std::string& what_,Exception *nested_) 528 : Warning(what_,nested_) 529 { 530 } 531 532 Magick::WarningMissingDelegate::~WarningMissingDelegate() throw() 533 { 534 } 535 536 Magick::WarningModule::WarningModule(const std::string& what_) 537 : Warning(what_) 538 { 539 } 540 541 Magick::WarningModule::WarningModule(const std::string& what_, 542 Exception *nested_) 543 : Warning(what_,nested_) 544 { 545 } 546 547 548 Magick::WarningModule::~WarningModule() throw() 549 { 550 } 551 552 Magick::WarningMonitor::WarningMonitor(const std::string& what_) 553 : Warning(what_) 554 { 555 } 556 557 Magick::WarningMonitor::WarningMonitor(const std::string& what_, 558 Exception *nested_) 559 : Warning(what_,nested_) 560 { 561 } 562 563 Magick::WarningMonitor::~WarningMonitor() throw() 564 { 565 } 566 567 Magick::WarningOption::WarningOption(const std::string& what_) 568 : Warning(what_) 569 { 570 } 571 572 Magick::WarningOption::WarningOption(const std::string& what_, 573 Exception *nested_) 574 : Warning(what_,nested_) 575 { 576 } 577 578 Magick::WarningOption::~WarningOption() throw() 579 { 580 } 581 582 Magick::WarningRegistry::WarningRegistry(const std::string& what_) 583 : Warning(what_) 584 { 585 } 586 587 Magick::WarningRegistry::WarningRegistry(const std::string& what_, 588 Exception *nested_) 589 : Warning(what_,nested_) 590 { 591 } 592 593 Magick::WarningRegistry::~WarningRegistry() throw() 594 { 595 } 596 597 Magick::WarningPolicy::WarningPolicy(const std::string& what_) 598 : Warning(what_) 599 { 600 } 601 602 Magick::WarningPolicy::WarningPolicy(const std::string& what_, 603 Exception *nested_) 604 : Warning(what_,nested_) 605 { 606 } 607 608 Magick::WarningPolicy::~WarningPolicy() throw() 609 { 610 } 611 612 Magick::WarningResourceLimit::WarningResourceLimit(const std::string& what_) 613 : Warning(what_) 614 { 615 } 616 617 Magick::WarningResourceLimit::WarningResourceLimit(const std::string& what_, 618 Exception *nested_) 619 : Warning(what_,nested_) 620 { 621 } 622 623 Magick::WarningResourceLimit::~WarningResourceLimit() throw() 624 { 625 } 626 627 Magick::WarningStream::WarningStream(const std::string& what_) 628 : Warning(what_) 629 { 630 } 631 632 Magick::WarningStream::WarningStream(const std::string& what_, 633 Exception *nested_) 634 : Warning(what_,nested_) 635 { 636 } 637 638 Magick::WarningStream::~WarningStream() throw() 639 { 640 } 641 642 Magick::WarningType::WarningType(const std::string& what_) 643 : Warning(what_) 644 { 645 } 646 647 Magick::WarningType::WarningType(const std::string& what_,Exception *nested_) 648 : Warning(what_,nested_) 649 { 650 } 651 652 Magick::WarningType::~WarningType() throw() 653 { 654 } 655 656 Magick::WarningUndefined::WarningUndefined(const std::string& what_) 657 : Warning(what_) 658 { 659 } 660 661 Magick::WarningUndefined::WarningUndefined(const std::string& what_, 662 Exception *nested_) 663 : Warning(what_,nested_) 664 { 665 } 666 667 Magick::WarningUndefined::~WarningUndefined() throw() 668 { 669 } 670 671 Magick::WarningXServer::WarningXServer(const std::string& what_) 672 : Warning(what_) 673 { 674 } 675 676 Magick::WarningXServer::WarningXServer(const std::string& what_, 677 Exception *nested_) 678 : Warning(what_,nested_) 679 { 680 } 681 682 Magick::WarningXServer::~WarningXServer() throw() 683 { 684 } 685 686 std::string Magick::formatExceptionMessage(const MagickCore::ExceptionInfo *exception_) 687 { 688 // Format error message ImageMagick-style 689 std::string message=GetClientName(); 690 if (exception_->reason != (char *) NULL) 691 { 692 message+=std::string(": "); 693 message+=std::string(exception_->reason); 694 } 695 696 if (exception_->description != (char *) NULL) 697 message += " (" + std::string(exception_->description) + ")"; 698 return(message); 699 } 700 701 Magick::Exception* Magick::createException(const MagickCore::ExceptionInfo *exception_) 702 { 703 std::string message=formatExceptionMessage(exception_); 704 switch (exception_->severity) 705 { 706 case MagickCore::BlobError: 707 case MagickCore::BlobFatalError: 708 return new ErrorBlob(message); 709 case MagickCore::BlobWarning: 710 return new WarningBlob(message); 711 case MagickCore::CacheError: 712 case MagickCore::CacheFatalError: 713 return new ErrorCache(message); 714 case MagickCore::CacheWarning: 715 return new WarningCache(message); 716 case MagickCore::CoderError: 717 case MagickCore::CoderFatalError: 718 return new ErrorCoder(message); 719 case MagickCore::CoderWarning: 720 return new WarningCoder(message); 721 case MagickCore::ConfigureError: 722 case MagickCore::ConfigureFatalError: 723 return new ErrorConfigure(message); 724 case MagickCore::ConfigureWarning: 725 return new WarningConfigure(message); 726 case MagickCore::CorruptImageError: 727 case MagickCore::CorruptImageFatalError: 728 return new ErrorCorruptImage(message); 729 case MagickCore::CorruptImageWarning: 730 return new WarningCorruptImage(message); 731 case MagickCore::DelegateError: 732 case MagickCore::DelegateFatalError: 733 return new ErrorDelegate(message); 734 case MagickCore::DelegateWarning: 735 return new WarningDelegate(message); 736 case MagickCore::DrawError: 737 case MagickCore::DrawFatalError: 738 return new ErrorDraw(message); 739 case MagickCore::DrawWarning: 740 return new WarningDraw(message); 741 case MagickCore::FileOpenError: 742 case MagickCore::FileOpenFatalError: 743 return new ErrorFileOpen(message); 744 case MagickCore::FileOpenWarning: 745 return new WarningFileOpen(message); 746 case MagickCore::ImageError: 747 case MagickCore::ImageFatalError: 748 return new ErrorImage(message); 749 case MagickCore::ImageWarning: 750 return new WarningImage(message); 751 case MagickCore::MissingDelegateError: 752 case MagickCore::MissingDelegateFatalError: 753 return new ErrorMissingDelegate(message); 754 case MagickCore::MissingDelegateWarning: 755 return new WarningMissingDelegate(message); 756 case MagickCore::ModuleError: 757 case MagickCore::ModuleFatalError: 758 return new ErrorModule(message); 759 case MagickCore::ModuleWarning: 760 return new WarningModule(message); 761 case MagickCore::MonitorError: 762 case MagickCore::MonitorFatalError: 763 return new ErrorMonitor(message); 764 case MagickCore::MonitorWarning: 765 return new WarningMonitor(message); 766 case MagickCore::OptionError: 767 case MagickCore::OptionFatalError: 768 return new ErrorOption(message); 769 case MagickCore::OptionWarning: 770 return new WarningOption(message); 771 case MagickCore::PolicyWarning: 772 return new WarningPolicy(message); 773 case MagickCore::PolicyError: 774 case MagickCore::PolicyFatalError: 775 return new ErrorPolicy(message); 776 case MagickCore::RegistryError: 777 case MagickCore::RegistryFatalError: 778 return new ErrorRegistry(message); 779 case MagickCore::RegistryWarning: 780 return new WarningRegistry(message); 781 case MagickCore::ResourceLimitError: 782 case MagickCore::ResourceLimitFatalError: 783 return new ErrorResourceLimit(message); 784 case MagickCore::ResourceLimitWarning: 785 return new WarningResourceLimit(message); 786 case MagickCore::StreamError: 787 case MagickCore::StreamFatalError: 788 return new ErrorStream(message); 789 case MagickCore::StreamWarning: 790 return new WarningStream(message); 791 case MagickCore::TypeError: 792 case MagickCore::TypeFatalError: 793 return new ErrorType(message); 794 case MagickCore::TypeWarning: 795 return new WarningType(message); 796 case MagickCore::UndefinedException: 797 default: 798 return new ErrorUndefined(message); 799 case MagickCore::XServerError: 800 case MagickCore::XServerFatalError: 801 return new ErrorXServer(message); 802 case MagickCore::XServerWarning: 803 return new WarningXServer(message); 804 } 805 } 806 807 MagickPPExport void Magick::throwExceptionExplicit( 808 const MagickCore::ExceptionType severity_,const char* reason_, 809 const char* description_) 810 { 811 // Just return if there is no reported error 812 if (severity_ == MagickCore::UndefinedException) 813 return; 814 815 GetPPException; 816 ThrowException(exceptionInfo,severity_,reason_,description_); 817 ThrowPPException(false); 818 } 819 820 MagickPPExport void Magick::throwException(ExceptionInfo *exception_, 821 const bool quiet_) 822 { 823 const ExceptionInfo 824 *p; 825 826 Exception 827 *nestedException, 828 *q; 829 830 MagickCore::ExceptionType 831 severity; 832 833 size_t 834 index; 835 836 std::string 837 message; 838 839 // Just return if there is no reported error 840 if (exception_->severity == MagickCore::UndefinedException) 841 return; 842 843 message=formatExceptionMessage(exception_); 844 nestedException=(Exception *) NULL; 845 LockSemaphoreInfo(exception_->semaphore); 846 if (exception_->exceptions != (void *) NULL) 847 { 848 index=GetNumberOfElementsInLinkedList((LinkedListInfo *) 849 exception_->exceptions); 850 while(index > 0) 851 { 852 p=(const ExceptionInfo *) GetValueFromLinkedList((LinkedListInfo *) 853 exception_->exceptions,--index); 854 if ((p->severity != exception_->severity) || (LocaleCompare(p->reason, 855 exception_->reason) != 0) || (LocaleCompare(p->description, 856 exception_->description) != 0)) 857 { 858 if (nestedException == (Exception *) NULL) 859 nestedException=createException(p); 860 else 861 { 862 q=createException(p); 863 nestedException->nested(q); 864 nestedException=q; 865 } 866 } 867 } 868 } 869 severity=exception_->severity; 870 UnlockSemaphoreInfo(exception_->semaphore); 871 872 if ((quiet_) && (severity < MagickCore::ErrorException)) 873 { 874 delete nestedException; 875 return; 876 } 877 878 DestroyExceptionInfo(exception_); 879 880 switch (severity) 881 { 882 case MagickCore::BlobError: 883 case MagickCore::BlobFatalError: 884 throw ErrorBlob(message,nestedException); 885 case MagickCore::BlobWarning: 886 throw WarningBlob(message,nestedException); 887 case MagickCore::CacheError: 888 case MagickCore::CacheFatalError: 889 throw ErrorCache(message,nestedException); 890 case MagickCore::CacheWarning: 891 throw WarningCache(message,nestedException); 892 case MagickCore::CoderError: 893 case MagickCore::CoderFatalError: 894 throw ErrorCoder(message,nestedException); 895 case MagickCore::CoderWarning: 896 throw WarningCoder(message,nestedException); 897 case MagickCore::ConfigureError: 898 case MagickCore::ConfigureFatalError: 899 throw ErrorConfigure(message,nestedException); 900 case MagickCore::ConfigureWarning: 901 throw WarningConfigure(message,nestedException); 902 case MagickCore::CorruptImageError: 903 case MagickCore::CorruptImageFatalError: 904 throw ErrorCorruptImage(message,nestedException); 905 case MagickCore::CorruptImageWarning: 906 throw WarningCorruptImage(message,nestedException); 907 case MagickCore::DelegateError: 908 case MagickCore::DelegateFatalError: 909 throw ErrorDelegate(message,nestedException); 910 case MagickCore::DelegateWarning: 911 throw WarningDelegate(message,nestedException); 912 case MagickCore::DrawError: 913 case MagickCore::DrawFatalError: 914 throw ErrorDraw(message,nestedException); 915 case MagickCore::DrawWarning: 916 throw WarningDraw(message,nestedException); 917 case MagickCore::FileOpenError: 918 case MagickCore::FileOpenFatalError: 919 throw ErrorFileOpen(message,nestedException); 920 case MagickCore::FileOpenWarning: 921 throw WarningFileOpen(message,nestedException); 922 case MagickCore::ImageError: 923 case MagickCore::ImageFatalError: 924 throw ErrorImage(message,nestedException); 925 case MagickCore::ImageWarning: 926 throw WarningImage(message,nestedException); 927 case MagickCore::MissingDelegateError: 928 case MagickCore::MissingDelegateFatalError: 929 throw ErrorMissingDelegate(message,nestedException); 930 case MagickCore::MissingDelegateWarning: 931 throw WarningMissingDelegate(message,nestedException); 932 case MagickCore::ModuleError: 933 case MagickCore::ModuleFatalError: 934 throw ErrorModule(message,nestedException); 935 case MagickCore::ModuleWarning: 936 throw WarningModule(message,nestedException); 937 case MagickCore::MonitorError: 938 case MagickCore::MonitorFatalError: 939 throw ErrorMonitor(message,nestedException); 940 case MagickCore::MonitorWarning: 941 throw WarningMonitor(message,nestedException); 942 case MagickCore::OptionError: 943 case MagickCore::OptionFatalError: 944 throw ErrorOption(message,nestedException); 945 case MagickCore::OptionWarning: 946 throw WarningOption(message,nestedException); 947 case MagickCore::PolicyWarning: 948 throw WarningPolicy(message,nestedException); 949 case MagickCore::PolicyError: 950 case MagickCore::PolicyFatalError: 951 throw ErrorPolicy(message,nestedException); 952 case MagickCore::RegistryError: 953 case MagickCore::RegistryFatalError: 954 throw ErrorRegistry(message,nestedException); 955 case MagickCore::RegistryWarning: 956 throw WarningRegistry(message,nestedException); 957 case MagickCore::ResourceLimitError: 958 case MagickCore::ResourceLimitFatalError: 959 throw ErrorResourceLimit(message,nestedException); 960 case MagickCore::ResourceLimitWarning: 961 throw WarningResourceLimit(message,nestedException); 962 case MagickCore::StreamError: 963 case MagickCore::StreamFatalError: 964 throw ErrorStream(message,nestedException); 965 case MagickCore::StreamWarning: 966 throw WarningStream(message,nestedException); 967 case MagickCore::TypeError: 968 case MagickCore::TypeFatalError: 969 throw ErrorType(message,nestedException); 970 case MagickCore::TypeWarning: 971 throw WarningType(message,nestedException); 972 case MagickCore::UndefinedException: 973 default: 974 throw ErrorUndefined(message,nestedException); 975 case MagickCore::XServerError: 976 case MagickCore::XServerFatalError: 977 throw ErrorXServer(message,nestedException); 978 case MagickCore::XServerWarning: 979 throw WarningXServer(message,nestedException); 980 } 981 }