OpenASIP 2.2
Loading...
Searching...
No Matches
Exception.cc
Go to the documentation of this file.
1/*
2 Copyright (c) 2002-2009 Tampere University.
3
4 This file is part of TTA-Based Codesign Environment (TCE).
5
6 Permission is hereby granted, free of charge, to any person obtaining a
7 copy of this software and associated documentation files (the "Software"),
8 to deal in the Software without restriction, including without limitation
9 the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 and/or sell copies of the Software, and to permit persons to whom the
11 Software is furnished to do so, subject to the following conditions:
12
13 The above copyright notice and this permission notice shall be included in
14 all copies or substantial portions of the Software.
15
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 DEALINGS IN THE SOFTWARE.
23 */
24/**
25 * @file Exception.cc
26 *
27 * Implementations of all exceptions.
28 *
29 * @author Mikael Lepistö 2003 (tmlepist-no.spam-cs.tut.fi)
30 * @author Pekka Jääskeläinen 2007 (pekka.jaaskelainen-no.spam-tut.fi)
31 */
32
33#include <boost/format.hpp>
34
35#include <string>
36using std::string;
37
38#include "Exception.hh"
39#include "Conversion.hh"
40
41const string Exception::unknownProcMsg_ = "(unknown)";
42
43std::string Exception::lastExceptionInfo_ = "";
44
45///////////////////////////////////////////////////////////////////////////////
46// Exception
47///////////////////////////////////////////////////////////////////////////////
48
49/**
50 * The constructor.
51 *
52 * @param filename Name of the file in which the exception occurred.
53 * @param linenum Line number in the file.
54 * @param procname Name of the procedure.
55 * @param errorMessage Error message.
56 */
58 std::string filename,
59 int linenum,
60 std::string procname,
61 std::string errorMessage) :
62 file_(filename), line_(linenum), proc_(procname),
63 errorMessage_(errorMessage), cause_(NULL) {
65 filename + ", line " + Conversion::toString(linenum) + ". Message: " +
67}
68
69/**
70 * Sets cause of exception.
71 *
72 * @param aCause Exception that resulted current exception.
73 */
74void
76 cause_ = new Exception(aCause);
77}
78
79/**
80 * Returns true if cause is set for current exception.
81 *
82 * @return True if cause is set for current exception.
83 */
84bool
86 return (cause_ != NULL);
87}
88
89/**
90 * Returns Exception that caused throwing current exception.
91 *
92 * @return Exception that caused throwing current exception.
93 */
94const Exception&
96 return *cause_;
97}
98
99/**
100 * Returns information of the last exception thrown.
101 *
102 * This is useful in debugging. It's used in Application.hh's unexpected
103 * exception handler.
104 *
105 * @return A string describing the last thrown exception.
106 */
107std::string
111
112/**
113 * The destructor.
114 * Nothing specific to do in the destructor.
115 */
118
119/**
120 * Returns the exception's error message.
121 */
122string
124 return errorMessage_;
125}
126
127/**
128 * Returns error message of exception and all error messages of exceptions
129 * that caused current exception.
130 *
131 * @param messagesOnly if true, only returns error messages, not the exception
132 * names and line numbers
133 *
134 * @return error message of exception and all error messages of exceptions
135 * that caused current exception.
136 */
137string
138Exception::errorMessageStack(bool messagesOnly) const {
139
140 string result = messagesOnly ?
141 errorMessage() :
142 (boost::format("%s:%d '%s'\n") %
143 fileName() % lineNum() % errorMessage()).str();
144
145 const Exception* exception = this;
146
147 while (exception->hasCause()) {
148 exception = &exception->cause();
149 assert(exception != NULL);
150 result += messagesOnly ?
151 exception->errorMessage() :
152 (boost::format("%s:%d '%s'\n") %
153 exception->fileName() % exception->lineNum() %
154 exception->errorMessage()).str();
155 }
156
157 return result;
158}
159
160///////////////////////////////////////////////////////////////////////////////
161// IllegalParameters
162///////////////////////////////////////////////////////////////////////////////
163
164/**
165 * The constructor for IllegalParameters exception.
166 *
167 * @param filename Name of the file in which the exception occurred.
168 * @param linenum Line number of the file.
169 * @param procname Name of the procedure.
170 * @param errorMessage Optional error message.
171 */
173 std::string filename,
174 int linenum,
175 std::string procname,
176 std::string errorMessage) :
177 Exception(filename, linenum, procname, errorMessage) {
178}
179
180///////////////////////////////////////////////////////////////////////////////
181// IOException
182///////////////////////////////////////////////////////////////////////////////
183
184/**
185 * The constructor.
186 *
187 * @param filename Name of the file in which the exception occurred.
188 * @param linenum Line number of the file.
189 * @param procname Name of the procedure.
190 * @param errorMessage Optional error message.
191 */
193 std::string filename,
194 int linenum,
195 std::string procname,
196 std::string errorMessage) :
197 Exception(filename, linenum, procname, errorMessage) {
198}
199
200///////////////////////////////////////////////////////////////////////////////
201// InvalidData
202///////////////////////////////////////////////////////////////////////////////
203
204/**
205 * The constructor.
206 *
207 * @param filename Name of the file in which the exception occurred.
208 * @param linenum Line number of the file.
209 * @param procname Name of the procedure.
210 * @param errorMessage Optional error message.
211 */
213 std::string filename,
214 int linenum,
215 std::string procname,
216 std::string errorMessage) :
217 Exception(filename, linenum, procname, errorMessage) {
218}
219
220///////////////////////////////////////////////////////////////////////////////
221// UnreachableStream
222///////////////////////////////////////////////////////////////////////////////
223
224/**
225 * The constructor.
226 *
227 * @param filename Name of the file in which the exception occurred.
228 * @param linenum Line number of the file.
229 * @param procname Name of the procedure.
230 * @param errorMessage Name of the stream (file).
231 */
233 std::string filename,
234 int linenum,
235 std::string procname,
236 std::string errorMessage) :
237 IOException(filename, linenum, procname, errorMessage) {
238}
239
240/**
241 * The destructor.
242 * Nothing specific to do in the destructor.
243 */
246
247///////////////////////////////////////////////////////////////////////////////
248// EndOfFile
249///////////////////////////////////////////////////////////////////////////////
250
251/**
252 * The constructor.
253 *
254 * @param filename Name of the file in which the exception occurred.
255 * @param linenum Line number of the file.
256 * @param procname Name of the procedure.
257 * @param errorMessage Name of the stream (file).
258 */
260 std::string filename,
261 int linenum,
262 std::string procname,
263 std::string errorMessage) :
264 IOException(filename, linenum, procname, errorMessage) {
265}
266
267/**
268 * The destructor.
269 * Nothing specific to do in the destructor.
270 */
273
274///////////////////////////////////////////////////////////////////////////////
275// WritePastEOF
276///////////////////////////////////////////////////////////////////////////////
277
278/**
279 * The constructor.
280 *
281 * @param filename Name of the file in which the exception occurred.
282 * @param linenum Line number of the file.
283 * @param procname Name of the procedure.
284 * @param errorMessage Optional error message.
285 */
287 std::string filename,
288 int linenum,
289 std::string procname,
290 std::string errorMessage) :
291 IOException(filename, linenum, procname, errorMessage) {
292}
293
294/**
295 * The destructor.
296 *
297 * Nothing specific to do in the destructor.
298 */
301
302///////////////////////////////////////////////////////////////////////////////
303// FileNotFound
304///////////////////////////////////////////////////////////////////////////////
305
306/**
307 * The constructor.
308 *
309 * @param filename The name of the file in which exception was thrown.
310 * @param linenum The numberof the line in which exception was thrown.
311 * @param procname The name of the procedure in which exception was thrown.
312 * @param errorMessage The error message.
313 */
315 std::string filename,
316 int linenum,
317 std::string procname,
318 std::string errorMessage) :
319 IOException(filename, linenum, procname, errorMessage) {
320}
321
322/**
323 * The destructor.
324 */
327
328///////////////////////////////////////////////////////////////////////////////
329// PathNotFound
330///////////////////////////////////////////////////////////////////////////////
331
332/**
333 * The constructor.
334 *
335 * @param filename The name of the file in which exception was thrown.
336 * @param linenum The numberof the line in which exception was thrown.
337 * @param procname The name of the procedure in which exception was thrown.
338 * @param errorMessage The error message.
339 * @param path The path that could not be found.
340 */
342 std::string filename,
343 int linenum,
344 std::string procname,
345 std::string errorMessage,
346 std::string path) :
347 IOException(filename, linenum, procname, errorMessage), path_(path) {
348}
349
350/**
351 * The destructor.
352 */
355
356
357///////////////////////////////////////////////////////////////////////////////
358// KeyAlreadyExists
359///////////////////////////////////////////////////////////////////////////////
360/**
361 * The constructor for KeyAlreadyExists exception.
362 *
363 * @param filename Name of the file in which the exception occurred.
364 * @param linenum Line number of the file.
365 * @param procname Name of the procedure.
366 * @param errorMessage The message attached to exception.
367 */
369 std::string filename,
370 int linenum,
371 std::string procname,
372 std::string errorMessage) :
373 IllegalParameters(filename, linenum, procname, errorMessage) {
374}
375
376///////////////////////////////////////////////////////////////////////////////
377// KeyNotFound
378///////////////////////////////////////////////////////////////////////////////
379/**
380 * The constructor for KeyNotFound exception.
381 *
382 * @param filename Name of the file in which the exception occurred.
383 * @param linenum Line number of the file.
384 * @param procname Name of the procedure.
385 * @param errorMessage The message attached to exception.
386 */
388 std::string filename,
389 int linenum,
390 std::string procname,
391 std::string errorMessage) :
392 IllegalParameters(filename, linenum, procname, errorMessage) {
393}
394
395///////////////////////////////////////////////////////////////////////////////
396// InstanceNotFound
397///////////////////////////////////////////////////////////////////////////////
398
399/**
400 * The constructor for InstanceNotFound exception.
401 *
402 * @param filename Name of the file in which the exception occurred.
403 * @param linenum Line number of the file.
404 * @param procname Name of the procedure.
405 * @param errorMessage Error message.
406 */
408 std::string filename,
409 int linenum,
410 std::string procname,
411 std::string errorMessage) :
412 IllegalParameters(filename, linenum, procname, errorMessage) {
413}
414
415/**
416 * Destructor.
417 */
420
421///////////////////////////////////////////////////////////////////////////////
422// OutOfRange
423///////////////////////////////////////////////////////////////////////////////
424
425/**
426 * The constructor.
427 *
428 * @param filename Name of the file in which the exception occurred.
429 * @param linenum Line number of the file.
430 * @param procname Name of the procedure.
431 * @param errorMessage Optional error message.
432 */
434 std::string filename,
435 int linenum,
436 std::string procname,
437 std::string errorMessage) :
438 InvalidData(filename, linenum, procname, errorMessage) {
439}
440
441///////////////////////////////////////////////////////////////////////////////
442// WrongSubclass
443///////////////////////////////////////////////////////////////////////////////
444
445/**
446 * The constructor.
447 *
448 * @param filename Name of the file in which the exception occurred.
449 * @param linenum Line number of the file.
450 * @param procname Name of the procedure.
451 * @param errorMessage Optional error message.
452 */
454 std::string filename,
455 int linenum,
456 std::string procname,
457 std::string errorMessage) :
458 InvalidData(filename, linenum, procname, errorMessage) {
459}
460
461///////////////////////////////////////////////////////////////////////////////
462// NotChunkable
463///////////////////////////////////////////////////////////////////////////////
464
465/**
466 * The constructor for NotChunkable exception.
467 *
468 * @param filename Name of the file in which the exception occurred.
469 * @param linenum Line number of the file.
470 * @param procname Name of the procedure.
471 * @param errorMessage Optional error message.
472 */
474 std::string filename,
475 int linenum,
476 std::string procname,
477 std::string errorMessage) :
478 WrongSubclass(filename, linenum, procname, errorMessage) {
479}
480
481///////////////////////////////////////////////////////////////////////////////
482// UnresolvedReference
483///////////////////////////////////////////////////////////////////////////////
484/**
485 * The constructor for UnresolvedReferences exception.
486 *
487 * @param filename Name of the file in which the exception occurred.
488 * @param linenum Line number of the file.
489 * @param procname Name of the procedure.
490 * @param errorMessage The message attached to exception.
491 */
493 std::string filename,
494 int linenum,
495 std::string procname,
496 std::string errorMessage) :
497 InvalidData(filename, linenum, procname, errorMessage) {
498}
499
500
501///////////////////////////////////////////////////////////////////////////////
502// ErrorInExternalFile
503///////////////////////////////////////////////////////////////////////////////
504
505/**
506 * Constructor.
507 *
508 * @param filename Name of the file in which the exception is created.
509 * @param linenum Number of the line in which the exception is created.
510 * @param procname Name of the function in which the exception is created.
511 * @param errorMessage Error message.
512 */
514 std::string filename,
515 int linenum,
516 std::string procname,
517 std::string errorMessage) :
518 InvalidData(filename, linenum, procname, errorMessage) {
519}
520
521/**
522 * Destructor.
523 */
526
527///////////////////////////////////////////////////////////////////////////////
528// MissingKeys
529///////////////////////////////////////////////////////////////////////////////
530
531/**
532 * Constructor.
533 *
534 * @param filename Name of the file in which the exception is created.
535 * @param linenum Number of the line in which the exception is created.
536 * @param procname Name of the function in which the exception is created.
537 * @param errorMessage Error message.
538 */
540 std::string filename,
541 int linenum,
542 std::string procname,
543 std::string errorMessage) :
544 InvalidData(filename, linenum, procname, errorMessage) {
545}
546
547/**
548 * Destructor.
549 */
552
553/////////////////////////////////////////////////////////////////////////////
554// NumberFormatException
555/////////////////////////////////////////////////////////////////////////////
556
557/**
558 * Constructor.
559 *
560 * @param filename Name of the file in which the exception is created.
561 * @param linenum Number of the line in which the exception is created.
562 * @param procname Name of the function in which the exception is created.
563 * @param errorMessage Optional error message.
564 */
566 std::string filename,
567 int linenum,
568 std::string procname,
569 std::string errorMessage) :
570 InvalidData(filename, linenum, procname, errorMessage) {
571}
572
573/**
574 * Destructor.
575 */
578
579///////////////////////////////////////////////////////////////////////////////
580// IllegalCommandLine
581///////////////////////////////////////////////////////////////////////////////
582
583/**
584 * Constructor.
585 *
586 * @param filename Name of the file in which the exception is created.
587 * @param linenum Number of the line in which the exception is created.
588 * @param procname Name of the function in which the exception is created.
589 * @param errorMessage Error message.
590 */
592 std::string filename,
593 int linenum,
594 std::string procname,
595 std::string errorMessage) :
596 InvalidData(filename, linenum, procname, errorMessage) {
597}
598
599/**
600 * Destructor.
601 */
604
605///////////////////////////////////////////////////////////////////////////////
606// UnexpectedValue
607///////////////////////////////////////////////////////////////////////////////
608
609/**
610 * Constructor.
611 *
612 * @param filename Name of the file in which the exception is created.
613 * @param linenum Number of the line in which the exception is created.
614 * @param procname Name of the function in which the exception is created.
615 * @param errorMessage Error message.
616 */
618 std::string filename,
619 int linenum,
620 std::string procname,
621 std::string errorMessage) :
622 InvalidData(filename, linenum, procname, errorMessage) {
623}
624
625/**
626 * Destructor.
627 */
630
631
632/////////////////////////////////////////////////////////////////////////////
633// IllegalConnectivity
634/////////////////////////////////////////////////////////////////////////////
635
636/**
637 * Constructor.
638 *
639 * @param filename Name of the file in which the exception is created.
640 * @param linenum Number of the line in which the exception is created.
641 * @param procname Name of the function in which the exception is created.
642 * @param errorMessage Error message.
643 */
645 std::string filename,
646 int linenum,
647 std::string procname,
648 std::string errorMessage) :
649 Exception(filename, linenum, procname, errorMessage) {
650}
651
652
653/**
654 * Destructor.
655 */
658
659/////////////////////////////////////////////////////////////////////////////
660// ParserStopRequest
661/////////////////////////////////////////////////////////////////////////////
662/**
663 * Constructor.
664 *
665 * @param fileName Name of the file in which the exception is created.
666 * @param lineNum Number of the line in which the exception is created.
667 * @param procName Name of the function in which the exception is created.
668 * @param errorMessage Error message.
669 */
671 std::string filename,
672 int linenum,
673 std::string procname,
674 std::string errorMessage) :
675 Exception(filename, linenum, procname, errorMessage) {
676}
677
678
679/**
680 * Destructor.
681 */
684
685/////////////////////////////////////////////////////////////////////////////
686// ComponentAlreadyExists
687/////////////////////////////////////////////////////////////////////////////
688
689/**
690 * Constructor.
691 *
692 * @param filename Name of the file in which the exception is created.
693 * @param linenum Number of the line in which the exception is created.
694 * @param procname Name of the function in which the exception is created.
695 * @param errorMessage Error message.
696 */
698 std::string filename,
699 int linenum,
700 std::string procname,
701 std::string errorMessage) :
702 IllegalParameters(filename, linenum, procname, errorMessage) {
703}
704
705
706/**
707 * Destructor.
708 */
711
712
713/////////////////////////////////////////////////////////////////////////////
714// IllegalRegistration
715/////////////////////////////////////////////////////////////////////////////
716
717/**
718 * Constructor.
719 *
720 * @param filename Name of the file in which the exception is created.
721 * @param linenum Number of the line in which the exception is created.
722 * @param procname Name of the function in which the exception is created.
723 * @param errorMessage Error message.
724 */
726 std::string filename,
727 int linenum,
728 std::string procname,
729 std::string errorMessage) :
730 InvalidData(filename, linenum, procname, errorMessage) {
731}
732
733
734/**
735 * Destructor.
736 */
739
740
741/////////////////////////////////////////////////////////////////////////////
742// ObjectStateLoadingException
743/////////////////////////////////////////////////////////////////////////////
744
745/**
746 * Constructor.
747 *
748 * @param filename Name of the file in which the exception is created.
749 * @param linenum Number of the line in which the exception is created.
750 * @param procname Name of the function in which the exception is created.
751 * @param errorMessage Error message.
752 */
754 std::string filename,
755 int linenum,
756 std::string procname,
757 std::string errorMessage) :
758 Exception(filename, linenum, procname, errorMessage) {
759}
760
761
762/**
763 * Destructor.
764 */
767
768
769/////////////////////////////////////////////////////////////////////////////
770// NonexistingChild
771/////////////////////////////////////////////////////////////////////////////
772
773/**
774 * Constructor.
775 *
776 * @param filename Name of the file in which the exception is created.
777 * @param linenum Number of the line in which the exception is created.
778 * @param procname Name of the function in which the exception is created.
779 * @param errorMessage Error message.
780 */
782 std::string filename,
783 int linenum,
784 std::string procname,
785 std::string errorMessage) :
786 IllegalParameters(filename, linenum, procname, errorMessage) {
787}
788
789
790/**
791 * Destructor.
792 */
795
796/////////////////////////////////////////////////////////////////////////////
797// DynamicLibraryException
798/////////////////////////////////////////////////////////////////////////////
799
800/**
801 * Constructor.
802 *
803 * @param filename Name of the file in which the exception is created.
804 * @param linenum Number of the line in which the exception is created.
805 * @param procname Name of the function in which the exception is created.
806 * @param errorMessage Error message.
807 */
809 std::string filename,
810 int linenum,
811 std::string procname,
812 std::string errorMessage) :
813 Exception(filename, linenum, procname, errorMessage) {
814}
815
816
817/**
818 * Destructor.
819 */
822
823/////////////////////////////////////////////////////////////////////////////
824// MultipleInstancesFound
825/////////////////////////////////////////////////////////////////////////////
826
827/**
828 * Constructor.
829 *
830 * @param filename Name of the file in which the exception is created.
831 * @param linenum Number of the line in which the exception is created.
832 * @param procname Name of the function in which the exception is created.
833 * @param errorMessage Error message.
834 */
836 std::string filename,
837 int linenum,
838 std::string procname,
839 std::string errorMessage) :
840 Exception(filename, linenum, procname, errorMessage) {
841}
842
843
844/**
845 * Destructor.
846 */
849
850
851/////////////////////////////////////////////////////////////////////////////
852// SymbolNotFound
853/////////////////////////////////////////////////////////////////////////////
854
855/**
856 * Constructor.
857 *
858 * @param filename Name of the file in which the exception is created.
859 * @param linenum Number of the line in which the exception is created.
860 * @param procname Name of the function in which the exception is created.
861 * @param errorMessage Error message.
862 */
864 std::string filename,
865 int linenum,
866 std::string procname,
867 std::string errorMessage) :
868 Exception(filename, linenum, procname, errorMessage) {
869}
870
871
872/**
873 * Destructor.
874 */
877
878/////////////////////////////////////////////////////////////////////////////
879// ObjectNotInitialized
880/////////////////////////////////////////////////////////////////////////////
881
882/**
883 * Constructor.
884 *
885 * @param filename Name of the file in which the exception is created.
886 * @param linenum Number of the line in which the exception is created.
887 * @param procname Name of the function in which the exception is created.
888 * @param errorMessage Error message.
889 */
891 std::string filename,
892 int linenum,
893 std::string procname,
894 std::string errorMessage) :
895 Exception(filename, linenum, procname, errorMessage) {
896}
897
898
899/**
900 * Destructor.
901 */
904
905/////////////////////////////////////////////////////////////////////////////
906// ScriptExecutionFailure
907/////////////////////////////////////////////////////////////////////////////
908
909/**
910 * Constructor.
911 *
912 * @param filename Name of the file in which the exception is created.
913 * @param linenum Number of the line in which the exception is created.
914 * @param procname Name of the function in which the exception is created.
915 * @param errorMessage Error message.
916 */
918 std::string filename,
919 int linenum,
920 std::string procname,
921 std::string errorMessage) :
922 Exception(filename, linenum, procname, errorMessage) {
923}
924
925
926/**
927 * Destructor.
928 */
931
932
933/////////////////////////////////////////////////////////////////////////////
934// SerializerException
935/////////////////////////////////////////////////////////////////////////////
936
937/**
938 * Constructor.
939 *
940 * @param fileName Name of the file in which the exception is created.
941 * @param lineNum Number of the line in which the exception is created.
942 * @param procName Name of the function in which the exception is created.
943 * @param errorMessage Error message.
944 */
946 std::string fileName,
947 int lineNum,
948 std::string procName,
949 std::string errorMessage) :
950 Exception(fileName, lineNum, procName, errorMessage) {
951}
952
953
954/**
955 * Destructor.
956 */
959
960/////////////////////////////////////////////////////////////////////////////
961// RelationalDBException
962/////////////////////////////////////////////////////////////////////////////
963
964/**
965 * Constructor.
966 *
967 * @param fileName Name of the file in which the exception is created.
968 * @param lineNum Number of the line in which the exception is created.
969 * @param procName Name of the function in which the exception is created.
970 * @param errorMessage Error message.
971 */
973 std::string fileName,
974 int lineNum,
975 std::string procName,
976 std::string errorMessage) :
977 Exception(fileName, lineNum, procName, errorMessage) {
978}
979
980
981/**
982 * Destructor.
983 */
986
987
988/////////////////////////////////////////////////////////////////////////////
989// StartTooLate
990/////////////////////////////////////////////////////////////////////////////
991
992/**
993 * Constructor.
994 *
995 * @param fileName Name of the file in which the exception is created.
996 * @param lineNum Number of the line in which the exception is created.
997 * @param procName Name of the function in which the exception is created.
998 * @param errorMessage Error message.
999 */
1001 std::string fileName,
1002 int lineNum,
1003 std::string procName,
1004 std::string errorMessage) :
1005 InvalidData(fileName, lineNum, procName, errorMessage) {
1006}
1007
1008
1009/**
1010 * Destructor.
1011 */
1014
1015
1016/////////////////////////////////////////////////////////////////////////////
1017// NotAvailable
1018/////////////////////////////////////////////////////////////////////////////
1019
1020/**
1021 * Constructor.
1022 *
1023 * @param fileName Name of the file in which the exception is created.
1024 * @param lineNum Number of the line in which the exception is created.
1025 * @param procName Name of the function in which the exception is created.
1026 * @param errorMessage Error message.
1027 */
1029 std::string fileName,
1030 int lineNum,
1031 std::string procName,
1032 std::string errorMessage) :
1033 InvalidData(fileName, lineNum, procName, errorMessage) {
1034}
1035
1036
1037/**
1038 * Destructor.
1039 */
1042
1043/////////////////////////////////////////////////////////////////////////////
1044// CannotEstimateCost
1045/////////////////////////////////////////////////////////////////////////////
1046
1047/**
1048 * Constructor.
1049 *
1050 * @param fileName Name of the file in which the exception is created.
1051 * @param lineNum Number of the line in which the exception is created.
1052 * @param procName Name of the function in which the exception is created.
1053 * @param errorMessage Error message.
1054 */
1056 std::string fileName,
1057 int lineNum,
1058 std::string procName,
1059 std::string errorMessage) :
1060 NotAvailable(fileName, lineNum, procName, errorMessage) {
1061}
1062
1063
1064/**
1065 * Destructor.
1066 */
1069
1070
1071
1072/////////////////////////////////////////////////////////////////////////////
1073// WrongOperandType
1074/////////////////////////////////////////////////////////////////////////////
1075
1076/**
1077 * Constructor.
1078 *
1079 * @param fileName Name of the file in which the exception is created.
1080 * @param lineNum Number of the line in which the exception is created.
1081 * @param procName Name of the function in which the exception is created.
1082 * @param errorMessage Error message.
1083 */
1085 std::string fileName,
1086 int lineNum,
1087 std::string procName,
1088 std::string errorMessage) :
1089 IllegalParameters(fileName, lineNum, procName, errorMessage) {
1090}
1091
1092
1093/**
1094 * Destructor.
1095 */
1098
1099
1100/////////////////////////////////////////////////////////////////////////////
1101// BadOperationModule
1102/////////////////////////////////////////////////////////////////////////////
1103
1104/**
1105 * Constructor.
1106 *
1107 * @param fileName Name of the file in which the exception is created.
1108 * @param lineNum Number of the line in which the exception is created.
1109 * @param procName Name of the function in which the exception is created.
1110 * @param errorMessage Error message.
1111 */
1113 std::string fileName,
1114 int lineNum,
1115 std::string procName,
1116 std::string errorMessage) :
1117 InvalidData(fileName, lineNum, procName, errorMessage) {
1118}
1119
1120
1121/**
1122 * Destructor.
1123 */
1126
1127
1128/////////////////////////////////////////////////////////////////////////////
1129// TypeMismatch
1130/////////////////////////////////////////////////////////////////////////////
1131
1132/**
1133 * Constructor.
1134 *
1135 * @param fileName Name of the file in which the exception is created.
1136 * @param lineNum Number of the line in which the exception is created.
1137 * @param procName Name of the function in which the exception is created.
1138 * @param errorMessage Error message.
1139 */
1141 std::string fileName,
1142 int lineNum,
1143 std::string procName,
1144 std::string errorMessage) :
1145 InvalidData(fileName, lineNum, procName, errorMessage) {
1146}
1147
1148
1149/**
1150 * Destructor.
1151 */
1154
1155
1156/////////////////////////////////////////////////////////////////////////////
1157// InvalidName
1158/////////////////////////////////////////////////////////////////////////////
1159
1160/**
1161 * Constructor.
1162 *
1163 * @param fileName Name of the file in which the exception is created.
1164 * @param lineNum Number of the line in which the exception is created.
1165 * @param procName Name of the function in which the exception is created.
1166 * @param errorMessage Error message.
1167 */
1169 std::string fileName,
1170 int lineNum,
1171 std::string procName,
1172 std::string errorMessage) :
1173 InvalidData(fileName, lineNum, procName, errorMessage) {
1174}
1175
1176
1177/**
1178 * Destructor.
1179 */
1182
1183/////////////////////////////////////////////////////////////////////////////
1184// IllegalOperationBehavior
1185/////////////////////////////////////////////////////////////////////////////
1186
1187/**
1188 * Constructor.
1189 *
1190 * @param fileName Name of the file in which the exception is created.
1191 * @param lineNum Number of the line in which the exception is created.
1192 * @param procName Name of the function in which the exception is created.
1193 * @param errorMessage Error message.
1194 */
1196 std::string fileName,
1197 int lineNum,
1198 std::string procName,
1199 std::string errorMessage) :
1200 Exception(fileName, lineNum, procName, errorMessage) {
1201}
1202
1203/**
1204 * Destructor.
1205 */
1208
1209/////////////////////////////////////////////////////////////////////////////
1210// NonexistingSyscall
1211/////////////////////////////////////////////////////////////////////////////
1212
1213/**
1214 * Constructor.
1215 *
1216 * @param fileName Name of the file in which the exception is created.
1217 * @param lineNum Number of the line in which the exception is created.
1218 * @param procName Name of the function in which the exception is created.
1219 * @param errorMessage Error message.
1220 */
1222 std::string fileName,
1223 int lineNum,
1224 std::string procName,
1225 std::string errorMessage) :
1226 Exception(fileName, lineNum, procName, errorMessage) {
1227}
1228
1229/**
1230 * Destructor.
1231 */
1234
1235/////////////////////////////////////////////////////////////////////////////
1236// IllegalMachine
1237/////////////////////////////////////////////////////////////////////////////
1238
1239/**
1240 * Constructor.
1241 *
1242 * @param fileName Name of the file in which the exception is created.
1243 * @param lineNum Number of the line in which the exception is created.
1244 * @param procName Name of the function in which the exception is created.
1245 * @param errorMessage Error message.
1246 */
1248 std::string fileName,
1249 int lineNum,
1250 std::string procName,
1251 std::string errorMessage) :
1252 InvalidData(fileName, lineNum, procName, errorMessage) {
1253}
1254
1255/**
1256 * Destructor.
1257 */
1260
1261/////////////////////////////////////////////////////////////////////////////
1262// IllegalProgram
1263/////////////////////////////////////////////////////////////////////////////
1264
1265/**
1266 * Constructor.
1267 *
1268 * @param fileName Name of the file in which the exception is created.
1269 * @param lineNum Number of the line in which the exception is created.
1270 * @param procName Name of the function in which the exception is created.
1271 * @param errorMessage Error message.
1272 */
1274 std::string fileName,
1275 int lineNum,
1276 std::string procName,
1277 std::string errorMessage) :
1278 InvalidData(fileName, lineNum, procName, errorMessage) {
1279}
1280
1281/**
1282 * Destructor.
1283 */
1286
1287
1288///////////////////////////////////////////////////////////////////////////////
1289// SimulationException
1290///////////////////////////////////////////////////////////////////////////////
1291
1292/**
1293 * The constructor.
1294 *
1295 * @param filename Name of the file in which the exception occurred.
1296 * @param linenum Line number of the file.
1297 * @param procname Name of the procedure.
1298 * @param errorMessage Name of the stream (file).
1299 */
1301 std::string filename,
1302 int linenum,
1303 std::string procname,
1304 std::string errorMessage) :
1305 Exception(filename, linenum, procname, errorMessage) {
1306}
1307
1308/**
1309 * The destructor.
1310 */
1313
1314///////////////////////////////////////////////////////////////////////////////
1315// SimulationStillRunning
1316///////////////////////////////////////////////////////////////////////////////
1317
1318/**
1319 * The constructor.
1320 *
1321 * @param filename Name of the file in which the exception occurred.
1322 * @param linenum Line number of the file.
1323 * @param procname Name of the procedure.
1324 * @param errorMessage Name of the stream (file).
1325 */
1327 std::string filename,
1328 int linenum,
1329 std::string procname,
1330 std::string errorMessage) :
1331 SimulationException(filename, linenum, procname, errorMessage) {
1332}
1333
1334/**
1335 * The destructor.
1336 */
1339
1340/////////////////////////////////////////////////////////////////////////////
1341// SimulationExecutionError
1342/////////////////////////////////////////////////////////////////////////////
1343
1344/**
1345 * Constructor.
1346 *
1347 * @param filename Name of the file in which the exception is created.
1348 * @param linenum Number of the line in which the exception is created.
1349 * @param procname Name of the function in which the exception is created.
1350 * @param errorMessage Error message.
1351 */
1353 std::string filename,
1354 int linenum,
1355 std::string procname,
1356 std::string errorMessage) :
1357 SimulationException(filename, linenum, procname, errorMessage) {
1358}
1359
1360
1361/**
1362 * Destructor.
1363 */
1366
1367///////////////////////////////////////////////////////////////////////////////
1368// SimulationCycleLimitReached
1369///////////////////////////////////////////////////////////////////////////////
1370
1371/**
1372 * The constructor.
1373 *
1374 * @param filename Name of the file in which the exception occurred.
1375 * @param linenum Line number of the file.
1376 * @param procname Name of the procedure.
1377 * @param errorMessage Name of the stream (file).
1378 */
1380 std::string filename,
1381 int linenum,
1382 std::string procname,
1383 std::string errorMessage) :
1384 Exception(filename, linenum, procname, errorMessage) {
1385}
1386
1387/**
1388 * The destructor.
1389 */
1392
1393///////////////////////////////////////////////////////////////////////////////
1394// SimulationTimeOut
1395///////////////////////////////////////////////////////////////////////////////
1396
1397/**
1398 * The constructor.
1399 *
1400 * @param filename Name of the file in which the exception occurred.
1401 * @param linenum Line number of the file.
1402 * @param procname Name of the procedure.
1403 * @param errorMessage Name of the stream (file).
1404 */
1406 std::string filename,
1407 int linenum,
1408 std::string procname,
1409 std::string errorMessage) :
1410 Exception(filename, linenum, procname, errorMessage) {
1411}
1412
1413/**
1414 * The destructor.
1415 */
1418
1419/////////////////////////////////////////////////////////////////////////////
1420// ObjectAlreadyExists
1421/////////////////////////////////////////////////////////////////////////////
1422
1423/**
1424 * Constructor.
1425 *
1426 * @param filename Name of the file in which the exception is created.
1427 * @param linenum Number of the line in which the exception is created.
1428 * @param procname Name of the function in which the exception is created.
1429 * @param errorMessage Error message.
1430 */
1432 std::string filename,
1433 int linenum,
1434 std::string procname,
1435 std::string errorMessage) :
1436 IllegalParameters(filename, linenum, procname, errorMessage) {
1437}
1438
1439
1440/**
1441 * Destructor.
1442 */
1445
1446/////////////////////////////////////////////////////////////////////////////
1447// CompileError
1448/////////////////////////////////////////////////////////////////////////////
1449
1450/**
1451 * Constructor.
1452 *
1453 * @param filename Name of the file in which the exception is created.
1454 * @param linenum Number of the line in which the exception is created.
1455 * @param procname Name of the function in which the exception is created.
1456 * @param errorMessage Error message.
1457 */
1459 std::string filename,
1460 int linenum,
1461 std::string procname,
1462 std::string errorMessage) :
1463 Exception(filename, linenum, procname, errorMessage) {
1464}
1465
1466
1467/**
1468 * Destructor.
1469 */
1472
1473/**
1474 * Set's line number where error happened in source code that is compiled.
1475 *
1476 * @param lineNum Line number where error happened in code that is compiled.
1477 */
1478void
1482
1483/**
1484 * Returns line number where error happened in source code file that is compiled.
1485 *
1486 * @return Line number where error happened in source code file that is compiled.
1487 */
1488int
1492
1493///////////////////////////////////////////////////////////////////////////////
1494// ModuleRunTimeError
1495///////////////////////////////////////////////////////////////////////////////
1496
1497/**
1498 * Constructor.
1499 *
1500 * @param filename Name of the file in which the exception is created.
1501 * @param linenum Number of the line in which the exception is created.
1502 * @param procname Name of the function in which the exception is created.
1503 * @param errorMessage Error message.
1504 */
1506 std::string filename,
1507 int linenum,
1508 std::string procname,
1509 std::string errorMessage) :
1510 Exception(filename, linenum, procname, errorMessage) {
1511}
1512
1513
1514///////////////////////////////////////////////////////////////////////////////
1515// NoKnownConversion
1516///////////////////////////////////////////////////////////////////////////////
1517/**
1518 * Constructor.
1519 *
1520 * @param filename Name of the file in which the exception is created.
1521 * @param linenum Number of the line in which the exception is created.
1522 * @param procname Name of the function in which the exception is created.
1523 * @param errorMessage Error message.
1524 */
1526 std::string filename,
1527 int linenum,
1528 std::string procname,
1529 std::string errorMessage)
1530 : InvalidData(filename, linenum, procname, errorMessage) {
1531}
#define assert(condition)
virtual ~BadOperationModule()
BadOperationModule(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
virtual ~CannotEstimateCost()
CannotEstimateCost(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
void setCodeFileLineNumber(int lineNum)
CompileError(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
virtual ~CompileError()
int codeFileLineNumber()
ComponentAlreadyExists(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:697
virtual ~ComponentAlreadyExists()
Definition Exception.cc:709
static std::string toString(const T &source)
virtual ~DynamicLibraryException()
Definition Exception.cc:820
DynamicLibraryException(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:808
virtual ~EndOfFile()
Definition Exception.cc:271
EndOfFile(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:259
ErrorInExternalFile(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:513
virtual ~ErrorInExternalFile()
Definition Exception.cc:524
const Exception * cause_
Exception that caused current exception.
Definition Exception.hh:91
const Exception & cause() const
Definition Exception.cc:95
std::string errorMessage_
Error message.
Definition Exception.hh:89
virtual ~Exception()
Definition Exception.cc:116
static std::string lastExceptionInfo_
Information of the last thrown exception for easing the debugging.
Definition Exception.hh:81
std::string errorMessageStack(bool messagesOnly=false) const
Definition Exception.cc:138
static const std::string unknownProcMsg_
Used when no procedure name is given.
Definition Exception.hh:70
std::string fileName() const
std::string errorMessage() const
Definition Exception.cc:123
bool hasCause() const
Definition Exception.cc:85
Exception(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:57
int lineNum() const
static std::string lastExceptionInfo()
Returns information of the last thrown exception.
Definition Exception.cc:108
void setCause(const Exception &cause)
Definition Exception.cc:75
virtual ~FileNotFound()
Definition Exception.cc:325
FileNotFound(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:314
IOException(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:192
IllegalCommandLine(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:591
virtual ~IllegalCommandLine()
Definition Exception.cc:602
IllegalConnectivity(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:644
virtual ~IllegalConnectivity()
Definition Exception.cc:656
virtual ~IllegalMachine()
IllegalMachine(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
IllegalOperationBehavior(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
virtual ~IllegalOperationBehavior()
IllegalParameters(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:172
IllegalProgram(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
virtual ~IllegalProgram()
virtual ~IllegalRegistration()
Definition Exception.cc:737
IllegalRegistration(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:725
InstanceNotFound(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:407
virtual ~InstanceNotFound()
Definition Exception.cc:418
InvalidData(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:212
virtual ~InvalidName()
InvalidName(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
KeyAlreadyExists(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:368
KeyNotFound(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:387
virtual ~MissingKeys()
Definition Exception.cc:550
MissingKeys(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:539
ModuleRunTimeError(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
MultipleInstancesFound(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:835
virtual ~MultipleInstancesFound()
Definition Exception.cc:847
NoKnownConversion(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
NonexistingChild(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:781
virtual ~NonexistingChild()
Definition Exception.cc:793
virtual ~NonexistingSyscall()
NonexistingSyscall(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
virtual ~NotAvailable()
NotAvailable(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
NotChunkable(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:473
virtual ~NumberFormatException()
Definition Exception.cc:576
NumberFormatException(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:565
virtual ~ObjectAlreadyExists()
ObjectAlreadyExists(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
ObjectNotInitialized(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:890
virtual ~ObjectNotInitialized()
Definition Exception.cc:902
virtual ~ObjectStateLoadingException()
Definition Exception.cc:765
ObjectStateLoadingException(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:753
OutOfRange(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:433
ParserStopRequest(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:670
virtual ~ParserStopRequest()
Definition Exception.cc:682
virtual ~PathNotFound()
Definition Exception.cc:353
PathNotFound(std::string filename, int linenum, std::string procname, std::string errorMessage, std::string path)
Definition Exception.cc:341
virtual ~RelationalDBException()
Definition Exception.cc:984
RelationalDBException(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:972
ScriptExecutionFailure(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:917
virtual ~ScriptExecutionFailure()
Definition Exception.cc:929
SerializerException(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:945
virtual ~SerializerException()
Definition Exception.cc:957
SimulationCycleLimitReached(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
SimulationException(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
virtual ~SimulationException()
virtual ~SimulationExecutionError()
SimulationExecutionError(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
virtual ~SimulationStillRunning()
SimulationStillRunning(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
SimulationTimeOut(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
virtual ~SimulationTimeOut()
virtual ~StartTooLate()
StartTooLate(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
SymbolNotFound(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:863
virtual ~SymbolNotFound()
Definition Exception.cc:875
TypeMismatch(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
virtual ~TypeMismatch()
virtual ~UnexpectedValue()
Definition Exception.cc:628
UnexpectedValue(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:617
virtual ~UnreachableStream()
Definition Exception.cc:244
UnreachableStream(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:232
UnresolvedReference(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:492
WritePastEOF(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:286
virtual ~WritePastEOF()
Definition Exception.cc:299
WrongOperandType(std::string fileName, int lineNum, std::string procName=unknownProcMsg_, std::string errorMessage="")
virtual ~WrongOperandType()
WrongSubclass(std::string filename, int linenum, std::string procname=unknownProcMsg_, std::string errorMessage="")
Definition Exception.cc:453