exception.h 5.0 KB

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