1 /* exceptions.h - exception related functions prototypes
3 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
4 R. Grafl, A. Krall, C. Kruegel, C. Oates, R. Obermaisser,
5 M. Probst, S. Ring, E. Steiner, C. Thalinger, D. Thuernbeck,
6 P. Tomsich, J. Wenninger
8 This file is part of CACAO.
10 This program is free software; you can redistribute it and/or
11 modify it under the terms of the GNU General Public License as
12 published by the Free Software Foundation; either version 2, or (at
13 your option) any later version.
15 This program is distributed in the hope that it will be useful, but
16 WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 General Public License for more details.
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
25 Contact: cacao@complang.tuwien.ac.at
27 Authors: Christian Thalinger
29 $Id: exceptions.h 1332 2004-07-21 15:48:08Z twisti $
39 #include "nat/java_lang_String.h"
40 #include "nat/java_lang_Throwable.h"
43 /* system exception classes required in cacao */
45 extern classinfo *class_java_lang_Throwable;
46 extern classinfo *class_java_lang_Exception;
47 extern classinfo *class_java_lang_Error;
48 extern classinfo *class_java_lang_OutOfMemoryError;
51 /* exception/error super class */
53 extern char *string_java_lang_Throwable;
56 /* specify some exception strings for code generation */
58 extern char *string_java_lang_ArithmeticException;
59 extern char *string_java_lang_ArithmeticException_message;
60 extern char *string_java_lang_ArrayIndexOutOfBoundsException;
61 extern char *string_java_lang_ArrayStoreException;
62 extern char *string_java_lang_ClassCastException;
63 extern char *string_java_lang_ClassNotFoundException;
64 extern char *string_java_lang_CloneNotSupportedException;
65 extern char *string_java_lang_Exception;
66 extern char *string_java_lang_IllegalArgumentException;
67 extern char *string_java_lang_IllegalMonitorStateException;
68 extern char *string_java_lang_NegativeArraySizeException;
69 extern char *string_java_lang_NoSuchFieldException;
70 extern char *string_java_lang_NoSuchMethodException;
71 extern char *string_java_lang_NullPointerException;
74 /* specify some error strings for code generation */
76 extern char *string_java_lang_AbstractMethodError;
77 extern char *string_java_lang_ClassCircularityError;
78 extern char *string_java_lang_ClassFormatError;
79 extern char *string_java_lang_Error;
80 extern char *string_java_lang_ExceptionInInitializerError;
81 extern char *string_java_lang_IncompatibleClassChangeError;
82 extern char *string_java_lang_InternalError;
83 extern char *string_java_lang_LinkageError;
84 extern char *string_java_lang_NoClassDefFoundError;
85 extern char *string_java_lang_NoSuchFieldError;
86 extern char *string_java_lang_NoSuchMethodError;
87 extern char *string_java_lang_OutOfMemoryError;
88 extern char *string_java_lang_VerifyError;
91 /* function prototypes */
93 /* load, link and compile exceptions used in the system */
94 void init_system_exceptions();
96 /* exception throwing functions */
97 void throw_exception();
98 void throw_exception_exit();
100 void throw_main_exception();
101 void throw_main_exception_exit();
103 void throw_cacao_exception_exit(char *exception, char *message);
105 /* initialize new exceptions */
106 java_objectheader *new_exception(char *classname);
107 java_objectheader *new_exception_message(char *classname, char *message);
108 java_objectheader *new_exception_throwable(char *classname, java_lang_Throwable *cause);
109 java_objectheader *new_exception_utfmessage(char *classname, utf *message);
110 java_objectheader *new_exception_javastring(char *classname, java_lang_String *message);
111 java_objectheader *new_exception_int(char *classname, s4 i);
113 java_objectheader *new_classformaterror(classinfo *c, char *message, ...);
114 java_objectheader *new_verifyerror(methodinfo *m, char *message);
116 #endif /* _EXCEPTIONS_H */
120 * These are local overrides for various environment variables in Emacs.
121 * Please do not remove this and leave it at the end of the file, where
122 * Emacs will automagically detect them.
123 * ---------------------------------------------------------------------
126 * indent-tabs-mode: t