1 /** 2 * \file 3 */ 4 5 #ifndef _MONO_METADATA_EXCEPTION_H_ 6 #define _MONO_METADATA_EXCEPTION_H_ 7 8 #include <mono/metadata/object.h> 9 #include <mono/metadata/image.h> 10 11 MONO_BEGIN_DECLS 12 13 extern MONO_API MonoException * 14 mono_exception_from_name (MonoImage *image, 15 const char* name_space, 16 const char *name); 17 18 MONO_API MonoException * 19 mono_exception_from_token (MonoImage *image, uint32_t token); 20 21 MONO_RT_EXTERNAL_ONLY 22 MONO_API MonoException * 23 mono_exception_from_name_two_strings (MonoImage *image, const char *name_space, 24 const char *name, MonoString *a1, MonoString *a2); 25 26 MONO_API MonoException * 27 mono_exception_from_name_msg (MonoImage *image, const char *name_space, 28 const char *name, const char *msg); 29 30 MONO_RT_EXTERNAL_ONLY 31 MONO_API MonoException * 32 mono_exception_from_token_two_strings (MonoImage *image, uint32_t token, 33 MonoString *a1, MonoString *a2); 34 35 extern MONO_API MonoException * 36 mono_exception_from_name_domain (MonoDomain *domain, MonoImage *image, 37 const char* name_space, 38 const char *name); 39 40 MONO_API MonoException * 41 mono_get_exception_divide_by_zero (void); 42 43 MONO_API MonoException * 44 mono_get_exception_security (void); 45 46 MONO_API MonoException * 47 mono_get_exception_arithmetic (void); 48 49 MONO_API MonoException * 50 mono_get_exception_overflow (void); 51 52 MONO_API MonoException * 53 mono_get_exception_null_reference (void); 54 55 MONO_API MonoException * 56 mono_get_exception_execution_engine (const char *msg); 57 58 MONO_API MonoException * 59 mono_get_exception_thread_abort (void); 60 61 MONO_API MonoException * 62 mono_get_exception_thread_state (const char *msg); 63 64 MONO_API MonoException * 65 mono_get_exception_thread_interrupted (void); 66 67 MONO_API MonoException * 68 mono_get_exception_serialization (const char *msg); 69 70 MONO_API MonoException * 71 mono_get_exception_invalid_cast (void); 72 73 MONO_API MonoException * 74 mono_get_exception_invalid_operation (const char *msg); 75 76 MONO_API MonoException * 77 mono_get_exception_index_out_of_range (void); 78 79 MONO_API MonoException * 80 mono_get_exception_array_type_mismatch (void); 81 82 MONO_API MonoException * 83 mono_get_exception_type_load (MonoString *class_name, char *assembly_name); 84 85 MONO_API MonoException * 86 mono_get_exception_missing_method (const char *class_name, const char *member_name); 87 88 MONO_API MonoException * 89 mono_get_exception_missing_field (const char *class_name, const char *member_name); 90 91 MONO_API MonoException * 92 mono_get_exception_not_implemented (const char *msg); 93 94 MONO_API MonoException * 95 mono_get_exception_not_supported (const char *msg); 96 97 MONO_API MonoException* 98 mono_get_exception_argument_null (const char *arg); 99 100 MONO_API MonoException * 101 mono_get_exception_argument (const char *arg, const char *msg); 102 103 MONO_API MonoException * 104 mono_get_exception_argument_out_of_range (const char *arg); 105 106 MONO_API MonoException * 107 mono_get_exception_io (const char *msg); 108 109 MONO_API MonoException * 110 mono_get_exception_file_not_found (MonoString *fname); 111 112 MONO_RT_EXTERNAL_ONLY 113 MONO_API MonoException * 114 mono_get_exception_file_not_found2 (const char *msg, MonoString *fname); 115 116 MONO_RT_EXTERNAL_ONLY 117 MONO_API MonoException * 118 mono_get_exception_type_initialization (const char *type_name, MonoException *inner); 119 120 MONO_API MonoException * 121 mono_get_exception_synchronization_lock (const char *msg); 122 123 MONO_API MonoException * 124 mono_get_exception_cannot_unload_appdomain (const char *msg); 125 126 MONO_API MonoException * 127 mono_get_exception_appdomain_unloaded (void); 128 129 MONO_API MonoException * 130 mono_get_exception_bad_image_format (const char *msg); 131 132 MONO_RT_EXTERNAL_ONLY 133 MONO_API MonoException * 134 mono_get_exception_bad_image_format2 (const char *msg, MonoString *fname); 135 136 MONO_API MonoException * 137 mono_get_exception_stack_overflow (void); 138 139 MONO_API MonoException * 140 mono_get_exception_out_of_memory (void); 141 142 MONO_API MonoException * 143 mono_get_exception_field_access (void); 144 145 MONO_API MonoException * 146 mono_get_exception_method_access (void); 147 148 MONO_RT_EXTERNAL_ONLY 149 MONO_API MonoException * 150 mono_get_exception_reflection_type_load (MonoArray *types, MonoArray *exceptions); 151 152 MONO_RT_EXTERNAL_ONLY 153 MONO_API MonoException * 154 mono_get_exception_runtime_wrapped (MonoObject *wrapped_exception); 155 156 /* Installs a function which is called when the runtime encounters an unhandled exception. 157 * This hook isn't expected to return. 158 * If no hook has been installed, the runtime will print a message before aborting. 159 */ 160 typedef void (*MonoUnhandledExceptionFunc) (MonoObject *exc, void *user_data); 161 MONO_API void mono_install_unhandled_exception_hook (MonoUnhandledExceptionFunc func, void *user_data); 162 void mono_invoke_unhandled_exception_hook (MonoObject *exc); 163 164 MONO_END_DECLS 165 166 #endif /* _MONO_METADATA_EXCEPTION_H_ */ 167