Ruby 3.3.6p108 (2024-11-05 revision 75015d4c1f6965b5e85e96fb309f1f2129f933c0)
error.h
Go to the documentation of this file.
1#ifndef RBIMPL_ERROR_H /*-*-C++-*-vi:se ft=cpp:*/
2#define RBIMPL_ERROR_H
28#include "ruby/internal/value.h"
29
43typedef enum {
46
49
52
55
56 RB_WARN_CATEGORY_DEFAULT_BITS = (
59 0),
60
61 RB_WARN_CATEGORY_ALL_BITS = (
65 0)
67
69enum rb_io_wait_readwrite {RB_IO_WAIT_READABLE, RB_IO_WAIT_WRITABLE};
71#define RB_IO_WAIT_READABLE RB_IO_WAIT_READABLE
72#define RB_IO_WAIT_WRITABLE RB_IO_WAIT_WRITABLE
76
77
84VALUE rb_errinfo(void);
85
96void rb_set_errinfo(VALUE err);
97
100RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3)
113void rb_raise(VALUE exc, const char *fmt, ...);
114
117RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2)
127void rb_fatal(const char *fmt, ...);
128
132RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2)
149void rb_bug(const char *fmt, ...);
150
161void rb_bug_errno(const char *msg, int err);
162
186void rb_sys_fail(const char *msg);
187
197void rb_sys_fail_str(VALUE msg);
198
214void rb_mod_sys_fail(VALUE mod, const char *msg);
215
226void rb_mod_sys_fail_str(VALUE mod, VALUE msg);
227
246void rb_readwrite_sys_fail(enum rb_io_wait_readwrite waiting, const char *msg);
247
258void rb_iter_break(void);
259
297void rb_iter_break_value(VALUE val);
298
320void rb_exit(int status);
321
327void rb_notimplement(void);
328
336VALUE rb_syserr_new(int err, const char * msg);
337
346VALUE rb_syserr_new_str(int n, VALUE arg);
347
357void rb_syserr_fail(int err, const char *msg);
358
369void rb_syserr_fail_str(int err, VALUE msg);
370
383void rb_mod_syserr_fail(VALUE mod, int err, const char *msg);
384
396void rb_mod_syserr_fail_str(VALUE mod, int err, VALUE msg);
397
415void rb_readwrite_syserr_fail(enum rb_io_wait_readwrite waiting, int err, const char *msg);
416
434void rb_unexpected_type(VALUE self, int t);
435
446VALUE *rb_ruby_verbose_ptr(void);
447
458VALUE *rb_ruby_debug_ptr(void);
459
471#define ruby_verbose (*rb_ruby_verbose_ptr())
472
482#define ruby_debug (*rb_ruby_debug_ptr())
483
484/* reports if $VERBOSE is true */
486RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2)
507void rb_warning(const char *fmt, ...);
508
510RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3)
517void rb_category_warning(rb_warning_category_t cat, const char *fmt, ...);
518
520RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4)
530void rb_compile_warning(const char *file, int line, const char *fmt, ...);
531
533RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2)
541void rb_sys_warning(const char *fmt, ...);
542
543/* reports if $VERBOSE is not nil (so if it is true or false) */
546RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2)
554void rb_warn(const char *fmt, ...);
555
558RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3)
565void rb_category_warn(rb_warning_category_t cat, const char *fmt, ...);
566
568RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4)
576void rb_compile_warn(const char *file, int line, const char *fmt, ...);
577
579RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 4, 5)
588void rb_category_compile_warn(rb_warning_category_t cat, const char *file, int line, const char *fmt, ...);
589
593
594#endif /* RBIMPL_ERROR_H */
Defines RBIMPL_ATTR_COLD.
#define RBIMPL_ATTR_COLD()
Wraps (or simulates) __attribute__((cold))
Definition cold.h:34
Tweaking visibility of C variables/functions.
#define RBIMPL_SYMBOL_EXPORT_END()
Counterpart of RBIMPL_SYMBOL_EXPORT_BEGIN.
Definition dllexport.h:74
#define RBIMPL_SYMBOL_EXPORT_BEGIN()
Shortcut macro equivalent to RUBY_SYMBOL_EXPORT_BEGIN extern "C" {.
Definition dllexport.h:65
Defines RBIMPL_ATTR_FORMAT.
#define RBIMPL_ATTR_FORMAT(x, y, z)
Wraps (or simulates) __attribute__((format))
Definition format.h:29
void rb_notimplement(void)
Definition error.c:3498
void rb_mod_sys_fail(VALUE mod, const char *mesg)
Identical to rb_sys_fail(), except it takes additional module to extend the exception object before r...
Definition error.c:3636
rb_warning_category_t
Warning categories.
Definition error.h:43
void rb_category_warn(rb_warning_category_t category, const char *fmt,...)
Identical to rb_category_warning(), except it reports unless $VERBOSE is nil.
Definition error.c:433
void rb_category_warning(rb_warning_category_t category, const char *fmt,...)
Identical to rb_warning(), except it takes additional "category" parameter.
Definition error.c:465
void rb_mod_syserr_fail(VALUE mod, int e, const char *mesg)
Identical to rb_mod_sys_fail(), except it does not depend on C global variable errno.
Definition error.c:3650
void rb_syserr_fail(int e, const char *mesg)
Raises appropriate exception that represents a C errno.
Definition error.c:3567
void rb_iter_break(void)
Breaks from a block.
Definition vm.c:2043
void rb_readwrite_syserr_fail(enum rb_io_wait_readwrite waiting, int err, const char *msg)
Identical to rb_readwrite_sys_fail(), except it does not depend on C global variable errno.
Definition io.c:14577
void rb_sys_warning(const char *fmt,...)
Identical to rb_sys_fail(), except it does not raise an exception to render a warning instead.
Definition error.c:3718
VALUE rb_syserr_new_str(int n, VALUE arg)
Identical to rb_syserr_new(), except it takes the message in Ruby's String instead of C's.
Definition error.c:3561
void rb_mod_syserr_fail_str(VALUE mod, int e, VALUE mesg)
Identical to rb_mod_syserr_fail(), except it takes the message in Ruby's String instead of C's.
Definition error.c:3657
void rb_syserr_fail_str(int e, VALUE mesg)
Identical to rb_syserr_fail(), except it takes the message in Ruby's String instead of C's.
Definition error.c:3573
void rb_readwrite_sys_fail(enum rb_io_wait_readwrite waiting, const char *msg)
Raises appropriate exception using the parameters.
Definition io.c:14571
void rb_iter_break_value(VALUE val)
Identical to rb_iter_break(), except it additionally takes the "value" of this breakage.
Definition vm.c:2049
rb_io_wait_readwrite
for rb_readwrite_sys_fail first argument
Definition error.h:69
void rb_category_compile_warn(rb_warning_category_t category, const char *file, int line, const char *fmt,...)
Identical to rb_compile_warn(), except it also accepts category.
Definition error.c:396
void rb_warn(const char *fmt,...)
Identical to rb_warning(), except it reports unless $VERBOSE is nil.
Definition error.c:423
void rb_bug_errno(const char *mesg, int errno_arg)
This is a wrapper of rb_bug() which automatically constructs appropriate message from the passed errn...
Definition error.c:1075
VALUE rb_errinfo(void)
This is the same as $! in Ruby.
Definition eval.c:1898
VALUE rb_syserr_new(int n, const char *mesg)
Creates an exception object that represents the given C errno.
Definition error.c:3553
void rb_unexpected_type(VALUE x, int t)
Fails with the given object's type incompatibility to the type.
Definition error.c:1274
void rb_mod_sys_fail_str(VALUE mod, VALUE mesg)
Identical to rb_mod_sys_fail(), except it takes the message in Ruby's String instead of C's.
Definition error.c:3643
void rb_exit(int status)
Terminates the current execution context.
Definition process.c:4454
void rb_warning(const char *fmt,...)
Issues a warning.
Definition error.c:454
@ RB_WARN_CATEGORY_DEPRECATED
Warning is for deprecated features.
Definition error.h:48
@ RB_WARN_CATEGORY_EXPERIMENTAL
Warning is for experimental features.
Definition error.h:51
@ RB_WARN_CATEGORY_PERFORMANCE
Warning is for performance issues (not enabled by -w).
Definition error.h:54
@ RB_WARN_CATEGORY_NONE
Category unspecified.
Definition error.h:45
Defines RBIMPL_ATTR_NONNULL.
#define RBIMPL_ATTR_NONNULL(list)
Wraps (or simulates) __attribute__((nonnull))
Definition nonnull.h:30
Defines RBIMPL_ATTR_NORETURN.
#define RBIMPL_ATTR_NORETURN()
Wraps (or simulates) [[noreturn]]
Definition noreturn.h:38
Defines VALUE and ID.
uintptr_t VALUE
Type that represents a Ruby object.
Definition value.h:40