2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mono / metadata / exception.h
1 #ifndef _MONO_METADATA_EXCEPTION_H_
2 #define _MONO_METADATA_EXCEPTION_H_
3
4 #ifdef MONO_USE_EXC_TABLES
5 #define MONO_ARCH_SAVE_REGS __builtin_unwind_init ()
6 #else
7 #define MONO_ARCH_SAVE_REGS 
8 #endif
9
10 #include <mono/metadata/object.h>
11 #include <mono/metadata/image.h>
12
13 typedef void (*MonoExceptionClassInitFunc)(MonoClass *klass);
14 typedef void (*MonoExceptionObjectInitFunc)(MonoObject *obj, MonoClass *klass);
15
16 extern void
17 mono_exception_install_handlers (MonoExceptionClassInitFunc class_init,
18                                  MonoExceptionObjectInitFunc obj_init);
19
20 extern MonoException *
21 mono_exception_from_name               (MonoImage *image, 
22                                         const char* name_space, 
23                                         const char *name);
24
25 MonoException *
26 mono_exception_from_name_two_strings (MonoImage *image, const char *name_space,
27                                       const char *name, MonoString *a1, MonoString *a2);
28
29 MonoException *
30 mono_exception_from_name_msg           (MonoImage *image, const char *name_space,
31                                         const char *name, const guchar *msg);
32
33 extern MonoException *
34 mono_exception_from_name_domain        (MonoDomain *domain, MonoImage *image, 
35                                         const char* name_space, 
36                                         const char *name);
37
38 MonoException *
39 mono_get_exception_divide_by_zero      (void);
40
41 MonoException *
42 mono_get_exception_security            (void);
43
44 MonoException *
45 mono_get_exception_arithmetic          (void);
46
47 MonoException *
48 mono_get_exception_overflow            (void);
49
50 MonoException *
51 mono_get_exception_null_reference      (void);
52
53 MonoException *
54 mono_get_exception_execution_engine    (const guchar *msg);
55
56 MonoException *
57 mono_get_exception_thread_abort        (void);
58
59 MonoException *
60 mono_get_exception_thread_state        (const guchar *msg);
61
62 MonoException *
63 mono_get_exception_serialization       (const guchar *msg);
64
65 MonoException *
66 mono_get_exception_invalid_cast        (void);
67
68 MonoException *
69 mono_get_exception_index_out_of_range  (void);
70
71 MonoException *
72 mono_get_exception_array_type_mismatch (void);
73
74 MonoException *
75 mono_get_exception_type_load           (MonoString *type_name);
76
77 MonoException *
78 mono_get_exception_missing_method      (void);
79
80 MonoException *
81 mono_get_exception_not_implemented     (const guchar *msg);
82
83 MonoException*
84 mono_get_exception_argument_null       (const guchar *arg);
85
86 MonoException *
87 mono_get_exception_argument            (const guchar *arg, const guchar *msg);
88
89 MonoException *
90 mono_get_exception_argument_out_of_range (const guchar *arg);
91
92 MonoException *
93 mono_get_exception_io                    (const guchar *msg);
94
95 MonoException *
96 mono_get_exception_file_not_found        (MonoString *fname);
97
98 MonoException *
99 mono_get_exception_type_initialization (const gchar *type_name, MonoException *inner);
100
101 MonoException *
102 mono_get_exception_synchronization_lock (const guchar *msg);
103
104 MonoException *
105 mono_get_exception_cannot_unload_appdomain (const guchar *msg);
106
107 MonoException *
108 mono_get_exception_appdomain_unloaded (void);
109
110 MonoException *
111 mono_get_exception_bad_image_format (const guchar *msg);
112
113 MonoException *
114 mono_get_exception_stack_overflow (void);
115
116 #endif /* _MONO_METADATA_EXCEPTION_H_ */