2004-01-06 Miguel de Icaza <miguel@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 extern MonoException *
26 mono_exception_from_name_domain        (MonoDomain *domain, MonoImage *image, 
27                                         const char* name_space, 
28                                         const char *name);
29
30 MonoException *
31 mono_get_exception_divide_by_zero      (void);
32
33 MonoException *
34 mono_get_exception_security            (void);
35
36 MonoException *
37 mono_get_exception_arithmetic          (void);
38
39 MonoException *
40 mono_get_exception_overflow            (void);
41
42 MonoException *
43 mono_get_exception_null_reference      (void);
44
45 MonoException *
46 mono_get_exception_execution_engine    (const guchar *msg);
47
48 MonoException *
49 mono_get_exception_thread_abort        (void);
50
51 MonoException *
52 mono_get_exception_thread_state        (const guchar *msg);
53
54 MonoException *
55 mono_get_exception_serialization       (const guchar *msg);
56
57 MonoException *
58 mono_get_exception_invalid_cast        (void);
59
60 MonoException *
61 mono_get_exception_index_out_of_range  (void);
62
63 MonoException *
64 mono_get_exception_array_type_mismatch (void);
65
66 MonoException *
67 mono_get_exception_type_load           (MonoString *type_name);
68
69 MonoException *
70 mono_get_exception_missing_method      (void);
71
72 MonoException *
73 mono_get_exception_not_implemented     (const guchar *msg);
74
75 MonoException*
76 mono_get_exception_argument_null       (const guchar *arg);
77
78 MonoException *
79 mono_get_exception_argument            (const guchar *arg, const guchar *msg);
80
81 MonoException *
82 mono_get_exception_argument_out_of_range (const guchar *arg);
83
84 MonoException *
85 mono_get_exception_io                    (const guchar *msg);
86
87 MonoException *
88 mono_get_exception_file_not_found        (MonoString *fname);
89
90 MonoException *
91 mono_get_exception_type_initialization (const gchar *type_name, MonoException *inner);
92
93 MonoException *
94 mono_get_exception_synchronization_lock (const guchar *msg);
95
96 MonoException *
97 mono_get_exception_cannot_unload_appdomain (const guchar *msg);
98
99 MonoException *
100 mono_get_exception_appdomain_unloaded (void);
101
102 MonoException *
103 mono_get_exception_bad_image_format (const guchar *msg);
104
105 #endif /* _MONO_METADATA_EXCEPTION_H_ */