Ruby  2.5.0dev(2017-10-22revision60238)
Data Structures | Macros | Enumerations | Functions | Variables
Exception handlings

Data Structures

struct  bug_reporters
 

Macros

#define EXIT_SUCCESS   0
 
#define WIFEXITED(status)   1
 
#define WEXITSTATUS(status)   (status)
 
#define with_warning_string(mesg, enc, fmt)
 
#define MAX_BUG_REPORTERS   0x100
 
#define REPORT_BUG_BUFSIZ   256
 
#define bug_report_begin(out, fmt)
 
#define report_bug(file, line, fmt, ctx)
 
#define report_bug_valist(file, line, fmt, ctx, args)
 
#define write_or_abort(fd, str, len)   (write((fd), (str), (len)) < 0 ? abort() : (void)0)
 
#define WRITE_CONST(fd, str)   write_or_abort((fd),(str),sizeof(str) - 1)
 
#define UNDEF_LEAKED   "undef leaked to the Ruby space"
 
#define id_bt   idBt
 
#define id_bt_locations   idBt_locations
 
#define id_mesg   idMesg
 
#define id_status   ruby_static_id_status
 
#define name_err_mesg_free   RUBY_TYPED_DEFAULT_FREE
 

Enumerations

enum  { NAME_ERR_MESG__MESG, NAME_ERR_MESG__RECV, NAME_ERR_MESG__NAME, NAME_ERR_MESG_COUNT }
 

Functions

VALUE rb_iseqw_local_variables (VALUE iseqval)
 
VALUE rb_iseqw_new (const rb_iseq_t *)
 
int rb_str_end_with_asciichar (VALUE str, int c)
 
VALUE rb_syntax_error_append (VALUE exc, VALUE file, int line, int column, rb_encoding *enc, const char *fmt, va_list args)
 
void ruby_deprecated_internal_feature (const char *func)
 
VALUE rb_warning_warn (VALUE mod, VALUE str)
 
void rb_compile_warn (const char *file, int line, const char *fmt,...)
 
void rb_compile_warning (const char *file, int line, const char *fmt,...)
 
void rb_warn (const char *fmt,...)
 
void rb_enc_warn (rb_encoding *enc, const char *fmt,...)
 
void rb_warning (const char *fmt,...)
 
VALUE rb_warning_string (const char *fmt,...)
 
int rb_bug_reporter_add (void(*func)(FILE *, void *), void *data)
 
 FUNC_MINIMIZED (static void bug_important_message(FILE *out, const char *const msg, size_t len))
 
 NORETURN (static void die(void))
 
void rb_bug (const char *fmt,...)
 
void rb_bug_context (const void *ctx, const char *fmt,...)
 
void rb_bug_errno (const char *mesg, int errno_arg)
 
void rb_async_bug_errno (const char *mesg, int errno_arg)
 
void rb_report_bug_valist (VALUE file, int line, const char *fmt, va_list args)
 
void rb_assert_failure (const char *file, int line, const char *name, const char *expr)
 
const char * rb_builtin_type_name (int t)
 
const char * rb_builtin_class_name (VALUE x)
 
 NORETURN (static void unexpected_type(VALUE, int, int))
 
void rb_check_type (VALUE x, int t)
 
void rb_unexpected_type (VALUE x, int t)
 
int rb_typeddata_inherited_p (const rb_data_type_t *child, const rb_data_type_t *parent)
 
int rb_typeddata_is_kind_of (VALUE obj, const rb_data_type_t *data_type)
 
void * rb_check_typeddata (VALUE obj, const rb_data_type_t *data_type)
 
VALUE rb_exc_new (VALUE etype, const char *ptr, long len)
 
VALUE rb_exc_new_cstr (VALUE etype, const char *s)
 
VALUE rb_exc_new_str (VALUE etype, VALUE str)
 
VALUE rb_get_backtrace (VALUE exc)
 
VALUE rb_check_backtrace (VALUE bt)
 
VALUE rb_exc_set_backtrace (VALUE exc, VALUE bt)
 
void rb_name_error (ID id, const char *fmt,...)
 
void rb_name_error_str (VALUE str, const char *fmt,...)
 
VALUE rb_name_err_mesg_new (VALUE mesg, VALUE recv, VALUE method)
 
VALUE rb_name_err_new (VALUE mesg, VALUE recv, VALUE method)
 
void rb_invalid_str (const char *str, const char *type)
 
VALUE rb_key_err_new (VALUE mesg, VALUE recv, VALUE key)
 
void Init_Exception (void)
 
void rb_enc_raise (rb_encoding *enc, VALUE exc, const char *fmt,...)
 
void rb_raise (VALUE exc, const char *fmt,...)
 
 NORETURN (static void raise_loaderror(VALUE path, VALUE mesg))
 
void rb_loaderror (const char *fmt,...)
 
void rb_loaderror_with_path (VALUE path, const char *fmt,...)
 
void rb_notimplement (void)
 
void rb_fatal (const char *fmt,...)
 
VALUE rb_syserr_new (int n, const char *mesg)
 
VALUE rb_syserr_new_str (int n, VALUE arg)
 
void rb_syserr_fail (int e, const char *mesg)
 
void rb_syserr_fail_str (int e, VALUE mesg)
 
void rb_sys_fail (const char *mesg)
 
void rb_sys_fail_str (VALUE mesg)
 
void rb_mod_sys_fail (VALUE mod, const char *mesg)
 
void rb_mod_sys_fail_str (VALUE mod, VALUE mesg)
 
void rb_mod_syserr_fail (VALUE mod, int e, const char *mesg)
 
void rb_mod_syserr_fail_str (VALUE mod, int e, VALUE mesg)
 
void rb_sys_warning (const char *fmt,...)
 
void rb_sys_enc_warning (rb_encoding *enc, const char *fmt,...)
 
void rb_syserr_enc_warning (int err, rb_encoding *enc, const char *fmt,...)
 
void rb_load_fail (VALUE path, const char *err)
 
void rb_error_frozen (const char *what)
 
void rb_error_frozen_object (VALUE frozen_obj)
 
void rb_check_frozen (VALUE obj)
 
void rb_error_untrusted (VALUE obj)
 
void rb_check_trusted (VALUE obj)
 
void rb_check_copyable (VALUE obj, VALUE orig)
 
void Init_syserr (void)
 
void rb_exc_raise (VALUE mesg)
 Raises an exception in the current thread. More...
 
void rb_exc_fatal (VALUE mesg)
 Raises a fatal error in the current thread. More...
 
void rb_interrupt (void)
 Raises an Interrupt exception. More...
 
VALUE rb_make_exception (int argc, const VALUE *argv)
 Make an Exception object from the list of arguments in a manner similar to Kernel#raise. More...
 
void rb_jump_tag (int tag)
 Continues the exception caught by rb_protect() and rb_eval_string_protect(). More...
 
VALUE rb_rescue2 (VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*r_proc)(ANYARGS), VALUE data2,...)
 An equivalent of rescue clause. More...
 
VALUE rb_rescue (VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*r_proc)(ANYARGS), VALUE data2)
 An equivalent of rescue clause. More...
 
VALUE rb_protect (VALUE(*proc)(VALUE), VALUE data, int *pstate)
 Protects a function call from potential global escapes from the function. More...
 
VALUE rb_ensure (VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
 An equivalent to ensure clause. More...
 
VALUE rb_errinfo (void)
 The current exception in the current thread. More...
 
void rb_set_errinfo (VALUE err)
 Sets the current exception ($!) to the given value. More...
 

Variables

VALUE rb_eEAGAIN
 
VALUE rb_eEWOULDBLOCK
 
VALUE rb_eEINPROGRESS
 
VALUE rb_mWarning
 
VALUE rb_cWarningBuffer
 
const char ruby_description []
 
VALUE rb_eException
 
VALUE rb_eSystemExit
 
VALUE rb_eInterrupt
 
VALUE rb_eSignal
 
VALUE rb_eFatal
 
VALUE rb_eStandardError
 
VALUE rb_eRuntimeError
 
VALUE rb_eTypeError
 
VALUE rb_eArgError
 
VALUE rb_eIndexError
 
VALUE rb_eKeyError
 
VALUE rb_eRangeError
 
VALUE rb_eNameError
 
VALUE rb_eEncodingError
 
VALUE rb_eEncCompatError
 
VALUE rb_eNoMethodError
 
VALUE rb_eSecurityError
 
VALUE rb_eNotImpError
 
VALUE rb_eNoMemError
 
VALUE rb_cNameErrorMesg
 
VALUE rb_eScriptError
 
VALUE rb_eSyntaxError
 
VALUE rb_eLoadError
 
VALUE rb_eSystemCallError
 
VALUE rb_mErrno
 
ID ruby_static_id_status
 

Detailed Description

Macro Definition Documentation

◆ bug_report_begin

#define bug_report_begin (   out,
  fmt 
)
Value:
do { \
va_list args; \
va_start(args, fmt); \
bug_report_begin_valist(out, fmt, args); \
va_end(args); \
} while (0)

Definition at line 469 of file error.c.

◆ EXIT_SUCCESS

#define EXIT_SUCCESS   0

Definition at line 37 of file error.c.

Referenced by ruby_cleanup(), and ruby_executable_node().

◆ id_bt

#define id_bt   idBt

Definition at line 828 of file error.c.

Referenced by rb_key_err_new(), and rb_name_err_new().

◆ id_bt_locations

#define id_bt_locations   idBt_locations

Definition at line 829 of file error.c.

◆ id_mesg

#define id_mesg   idMesg

Definition at line 830 of file error.c.

Referenced by rb_key_err_new(), and rb_name_err_new().

◆ id_status

#define id_status   ruby_static_id_status

Definition at line 831 of file error.c.

◆ MAX_BUG_REPORTERS

#define MAX_BUG_REPORTERS   0x100

Definition at line 343 of file error.c.

◆ name_err_mesg_free

#define name_err_mesg_free   RUBY_TYPED_DEFAULT_FREE

Definition at line 1374 of file error.c.

◆ report_bug

#define report_bug (   file,
  line,
  fmt,
  ctx 
)
Value:
do { \
FILE *out = bug_report_file(file, line); \
if (out) { \
bug_report_begin(out, fmt); \
rb_vm_bugreport(ctx); \
bug_report_end(out); \
} \
} while (0) \

Definition at line 491 of file error.c.

Referenced by rb_bug(), and rb_bug_context().

◆ REPORT_BUG_BUFSIZ

#define REPORT_BUG_BUFSIZ   256

Definition at line 367 of file error.c.

◆ report_bug_valist

#define report_bug_valist (   file,
  line,
  fmt,
  ctx,
  args 
)
Value:
do { \
FILE *out = bug_report_file(file, line); \
if (out) { \
bug_report_begin_valist(out, fmt, args); \
rb_vm_bugreport(ctx); \
bug_report_end(out); \
} \
} while (0) \

Definition at line 500 of file error.c.

Referenced by rb_report_bug_valist().

◆ UNDEF_LEAKED

#define UNDEF_LEAKED   "undef leaked to the Ruby space"

Definition at line 695 of file error.c.

Referenced by rb_check_type(), and rb_unexpected_type().

◆ WEXITSTATUS

#define WEXITSTATUS (   status)    (status)

Definition at line 45 of file error.c.

◆ WIFEXITED

#define WIFEXITED (   status)    1

Definition at line 41 of file error.c.

◆ with_warning_string

#define with_warning_string (   mesg,
  enc,
  fmt 
)
Value:
VALUE mesg; \
va_list args; va_start(args, fmt); \
mesg = warning_string(enc, fmt, args); \
va_end(args);
unsigned long VALUE
Definition: ruby.h:85

Definition at line 239 of file error.c.

Referenced by rb_enc_warn(), rb_sys_enc_warning(), rb_sys_warning(), rb_syserr_enc_warning(), rb_warn(), rb_warning(), and rb_warning_string().

◆ WRITE_CONST

#define WRITE_CONST (   fd,
  str 
)    write_or_abort((fd),(str),sizeof(str) - 1)

Definition at line 570 of file error.c.

Referenced by rb_async_bug_errno().

◆ write_or_abort

#define write_or_abort (   fd,
  str,
  len 
)    (write((fd), (str), (len)) < 0 ? abort() : (void)0)

Definition at line 569 of file error.c.

Referenced by rb_async_bug_errno().

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
NAME_ERR_MESG__MESG 
NAME_ERR_MESG__RECV 
NAME_ERR_MESG__NAME 
NAME_ERR_MESG_COUNT 

Definition at line 1360 of file error.c.

Function Documentation

◆ FUNC_MINIMIZED()

FUNC_MINIMIZED ( static void   bug_important_messageFILE *out, const char *const msg, size_t len)

◆ Init_Exception()

void Init_Exception ( void  )

◆ Init_syserr()

void Init_syserr ( void  )

Definition at line 2641 of file error.c.

◆ NORETURN() [1/3]

NORETURN ( static void   dievoid)

Referenced by rb_raise().

◆ NORETURN() [2/3]

NORETURN ( static void   unexpected_typeVALUE, int, int)

◆ NORETURN() [3/3]

NORETURN ( static void   raise_loaderrorVALUE path, VALUE mesg)

◆ rb_assert_failure()

void rb_assert_failure ( const char *  file,
int  line,
const char *  name,
const char *  expr 
)

Definition at line 603 of file error.c.

References ruby_description.

◆ rb_async_bug_errno()

void rb_async_bug_errno ( const char *  mesg,
int  errno_arg 
)

Definition at line 573 of file error.c.

References strlen(), WRITE_CONST, and write_or_abort.

◆ rb_bug()

void rb_bug ( const char *  fmt,
  ... 
)

◆ rb_bug_context()

void rb_bug_context ( const void *  ctx,
const char *  fmt,
  ... 
)

Definition at line 536 of file error.c.

References GET_THREAD, NULL, rb_source_loc(), and report_bug.

◆ rb_bug_errno()

void rb_bug_errno ( const char *  mesg,
int  errno_arg 
)

Definition at line 552 of file error.c.

References rb_bug().

◆ rb_bug_reporter_add()

int rb_bug_reporter_add ( void(*)(FILE *, void *)  func,
void *  data 
)

Definition at line 353 of file error.c.

◆ rb_builtin_class_name()

const char* rb_builtin_class_name ( VALUE  x)

Definition at line 684 of file error.c.

◆ rb_builtin_type_name()

const char* rb_builtin_type_name ( int  t)

Definition at line 648 of file error.c.

References name, and numberof.

◆ rb_check_backtrace()

VALUE rb_check_backtrace ( VALUE  bt)

◆ rb_check_copyable()

void rb_check_copyable ( VALUE  obj,
VALUE  orig 
)

Definition at line 2627 of file error.c.

References FL_ABLE, FL_TAINT, PRIsVALUE, rb_check_frozen_internal, rb_raise(), rb_safe_level(), and RBASIC.

◆ rb_check_frozen()

void rb_check_frozen ( VALUE  obj)

Definition at line 2610 of file error.c.

References rb_check_frozen_internal.

◆ rb_check_trusted()

void rb_check_trusted ( VALUE  obj)

Definition at line 2622 of file error.c.

Referenced by rb_obj_init_copy().

◆ rb_check_type()

void rb_check_type ( VALUE  x,
int  t 
)

Definition at line 724 of file error.c.

References Qundef, rb_bug(), RTYPEDDATA_P, T_DATA, TYPE, and UNDEF_LEAKED.

◆ rb_check_typeddata()

void* rb_check_typeddata ( VALUE  obj,
const rb_data_type_t data_type 
)

Definition at line 769 of file error.c.

References RB_TYPE_P, and T_DATA.

◆ rb_compile_warn()

void rb_compile_warn ( const char *  file,
int  line,
const char *  fmt,
  ... 
)

Definition at line 200 of file error.c.

References NIL_P, and ruby_verbose.

◆ rb_compile_warning()

void rb_compile_warning ( const char *  file,
int  line,
const char *  fmt,
  ... 
)

Definition at line 215 of file error.c.

References RTEST, and ruby_verbose.

◆ rb_enc_raise()

void rb_enc_raise ( rb_encoding enc,
VALUE  exc,
const char *  fmt,
  ... 
)

Definition at line 2271 of file error.c.

References rb_enc_vsprintf(), rb_exc_new3, and rb_exc_raise().

Referenced by rb_file_expand_path_internal().

◆ rb_enc_warn()

void rb_enc_warn ( rb_encoding enc,
const char *  fmt,
  ... 
)

Definition at line 256 of file error.c.

References NIL_P, ruby_verbose, and with_warning_string.

◆ rb_ensure()

VALUE rb_ensure ( VALUE(*)(ANYARGS b_proc,
VALUE  data1,
VALUE(*)(ANYARGS e_proc,
VALUE  data2 
)

An equivalent to ensure clause.

Equivalent to begin .. ensure .. end.

Calls the function b_proc with data1 as the argument, then calls e_proc with data2 when execution terminated.

Returns
The return value of b_proc if no exception occurred, or Qnil if otherwise.
See also
rb_rescue
rb_rescue2
rb_protect

Definition at line 1035 of file eval.c.

Referenced by rb_gvar_set(), rb_mutex_sleep(), rb_mutex_synchronize(), rb_str_locktmp_ensure(), rsock_init_inetsock(), and rsock_make_hostent().

◆ rb_errinfo()

VALUE rb_errinfo ( void  )

The current exception in the current thread.

Same as $! in Ruby.

Returns
the current exception or Qnil

Definition at line 1777 of file eval.c.

References rb_thread_struct::ec, rb_execution_context_struct::errinfo, and GET_THREAD.

Referenced by rb_require_safe().

◆ rb_error_frozen()

void rb_error_frozen ( const char *  what)

Definition at line 2584 of file error.c.

References rb_raise().

Referenced by rb_frozen_class_p(), and rb_thread_local_aset().

◆ rb_error_frozen_object()

void rb_error_frozen_object ( VALUE  frozen_obj)

◆ rb_error_untrusted()

void rb_error_untrusted ( VALUE  obj)

Definition at line 2616 of file error.c.

◆ rb_exc_fatal()

void rb_exc_fatal ( VALUE  mesg)

Raises a fatal error in the current thread.

Same as rb_exc_raise() but raises a fatal error, which Ruby codes cannot rescue.

Definition at line 631 of file eval.c.

References NIL_P.

Referenced by rb_fatal().

◆ rb_exc_new()

VALUE rb_exc_new ( VALUE  etype,
const char *  ptr,
long  len 
)

Definition at line 836 of file error.c.

References rb_funcall(), and rb_str_new().

Referenced by rb_exc_new_cstr().

◆ rb_exc_new_cstr()

VALUE rb_exc_new_cstr ( VALUE  etype,
const char *  s 
)

Definition at line 842 of file error.c.

References rb_exc_new(), and strlen().

◆ rb_exc_new_str()

VALUE rb_exc_new_str ( VALUE  etype,
VALUE  str 
)

Definition at line 848 of file error.c.

References rb_funcall(), and StringValue.

Referenced by rb_keyword_error_new().

◆ rb_exc_raise()

void rb_exc_raise ( VALUE  mesg)

Raises an exception in the current thread.

Parameters
[in]mesgan Exception class or an Exception object.
Exceptions
alwaysraises an instance of the given exception class or the given Exception object.

Definition at line 615 of file eval.c.

References NIL_P.

Referenced by rb_enc_raise(), rb_exit(), rb_f_abort(), rb_mod_syserr_fail(), rb_mod_syserr_fail_str(), rb_name_error(), rb_name_error_str(), rb_raise(), rb_require_safe(), rb_sys_fail(), rb_sys_fail_str(), rb_syserr_fail(), rb_syserr_fail_str(), and rb_throw_obj().

◆ rb_exc_set_backtrace()

VALUE rb_exc_set_backtrace ( VALUE  exc,
VALUE  bt 
)

Definition at line 1083 of file error.c.

◆ rb_fatal()

void rb_fatal ( const char *  fmt,
  ... 
)

◆ rb_get_backtrace()

VALUE rb_get_backtrace ( VALUE  exc)

Definition at line 1004 of file error.c.

Referenced by rb_threadptr_error_print().

◆ rb_interrupt()

void rb_interrupt ( void  )

Raises an Interrupt exception.

Definition at line 644 of file eval.c.

References rb_eInterrupt, and rb_raise().

Referenced by rb_signal_exec().

◆ rb_invalid_str()

void rb_invalid_str ( const char *  str,
const char *  type 
)

Definition at line 1549 of file error.c.

References PRIsVALUE, rb_raise(), and rb_str_new2.

Referenced by rb_cstr_to_dbl(), and rb_cstr_to_inum().

◆ rb_iseqw_local_variables()

VALUE rb_iseqw_local_variables ( VALUE  iseqval)

Definition at line 2378 of file iseq.c.

References rb_iseq_local_variables().

◆ rb_iseqw_new()

VALUE rb_iseqw_new ( const rb_iseq_t )

Definition at line 782 of file iseq.c.

◆ rb_jump_tag()

void rb_jump_tag ( int  tag)

Continues the exception caught by rb_protect() and rb_eval_string_protect().

This function never return to the caller.

Parameters
[in]thevalue of *state which the protect function has set to the their last parameter.

Definition at line 821 of file eval.c.

References JUMP_TAG, TAG_FATAL, unknown_longjmp_status, and UNLIKELY.

Referenced by ossl_buf2str(), and ossl_membio2str().

◆ rb_key_err_new()

VALUE rb_key_err_new ( VALUE  mesg,
VALUE  recv,
VALUE  key 
)

Definition at line 1577 of file error.c.

References id_bt, id_mesg, Qnil, rb_ivar_set(), and rb_obj_alloc().

◆ rb_load_fail()

void rb_load_fail ( VALUE  path,
const char *  err 
)

Definition at line 2575 of file error.c.

References rb_str_append(), rb_str_buf_new_cstr(), and rb_str_cat2().

◆ rb_loaderror()

void rb_loaderror ( const char *  fmt,
  ... 
)

Definition at line 2306 of file error.c.

References rb_enc_vsprintf(), and rb_locale_encoding().

Referenced by dln_load(), and rb_f_require_relative().

◆ rb_loaderror_with_path()

void rb_loaderror_with_path ( VALUE  path,
const char *  fmt,
  ... 
)

Definition at line 2318 of file error.c.

References rb_enc_vsprintf(), and rb_locale_encoding().

◆ rb_make_exception()

VALUE rb_make_exception ( int  argc,
const VALUE argv 
)

Make an Exception object from the list of arguments in a manner similar to Kernel#raise.

Parameters
[in]argcthe number of arguments
[in]argva pointer to the array of arguments.

The first form of this function takes a String argument. Then it returns a RuntimeError whose error message is the given value.

The second from of this function takes an Exception object. Then it just returns the given value.

The last form takes an exception class, an optional error message and an optional array of backtrace. Then it passes the optional arguments to #exception method of the exception class.

Returns
the exception object, or Qnil if argc is 0.

Definition at line 788 of file eval.c.

◆ rb_mod_sys_fail()

void rb_mod_sys_fail ( VALUE  mod,
const char *  mesg 
)

Definition at line 2443 of file error.c.

◆ rb_mod_sys_fail_str()

void rb_mod_sys_fail_str ( VALUE  mod,
VALUE  mesg 
)

Definition at line 2451 of file error.c.

◆ rb_mod_syserr_fail()

void rb_mod_syserr_fail ( VALUE  mod,
int  e,
const char *  mesg 
)

Definition at line 2459 of file error.c.

References rb_exc_raise(), rb_extend_object(), and rb_syserr_new().

◆ rb_mod_syserr_fail_str()

void rb_mod_syserr_fail_str ( VALUE  mod,
int  e,
VALUE  mesg 
)

Definition at line 2467 of file error.c.

References rb_exc_raise(), rb_extend_object(), and rb_syserr_new_str().

◆ rb_name_err_mesg_new()

VALUE rb_name_err_mesg_new ( VALUE  mesg,
VALUE  recv,
VALUE  method 
)

Definition at line 1394 of file error.c.

Referenced by rb_name_err_new().

◆ rb_name_err_new()

VALUE rb_name_err_new ( VALUE  mesg,
VALUE  recv,
VALUE  method 
)

Definition at line 1407 of file error.c.

References id_bt, id_mesg, Qnil, rb_ivar_set(), rb_name_err_mesg_new(), and rb_obj_alloc().

◆ rb_name_error()

void rb_name_error ( ID  id,
const char *  fmt,
  ... 
)

◆ rb_name_error_str()

void rb_name_error_str ( VALUE  str,
const char *  fmt,
  ... 
)

Definition at line 1258 of file error.c.

References rb_class_new_instance(), rb_exc_raise(), and rb_vsprintf().

Referenced by rb_f_untrace_var().

◆ rb_notimplement()

void rb_notimplement ( void  )

Definition at line 2330 of file error.c.

References PRIsVALUE, rb_frame_this_func(), rb_id2str, and rb_raise().

Referenced by flock(), and rb_f_notimplement().

◆ rb_protect()

VALUE rb_protect ( VALUE(*)(VALUE proc,
VALUE  data,
int *  pstate 
)

Protects a function call from potential global escapes from the function.

Such global escapes include exceptions, Kernel#throw, break in an iterator, for example. It first calls the function func with arg as the argument. If no exception occurred during func, it returns the result of func and *state is zero. Otherwise, it returns Qnil and sets *state to nonzero. If state is NULL, it is not set in both cases.

You have to clear the error info with rb_set_errinfo(Qnil) when ignoring the caught exception.

See also
rb_rescue
rb_rescue2
rb_ensure

Definition at line 992 of file eval.c.

Referenced by goruby_run_node(), ossl_generate_cb_2(), ossl_pem_passwd_cb(), ossl_pkey_new(), ossl_str_new(), ossl_verify_cb_call(), rb_eval_string_protect(), rb_execarg_parent_start(), and ruby_eval_string_from_file_protect().

◆ rb_raise()

void rb_raise ( VALUE  exc,
const char *  fmt,
  ... 
)

Definition at line 2284 of file error.c.

References NORETURN(), rb_exc_new3, rb_exc_raise(), and rb_vsprintf().

Referenced by generic_to_value(), int_to_ffi_type(), iseq_ibf_dump(), ole_variant2val(), onigenc_single_byte_code_to_mbc(), rb_add_method_cfunc(), rb_alias(), rb_alias_variable(), rb_alloc_tmp_buffer(), rb_ary_resize(), rb_ary_store(), rb_autoload(), rb_autoload_str(), rb_big_mul_karatsuba(), rb_big_mul_toom3(), rb_block_min_max_arity(), rb_check_backtrace(), rb_check_copyable(), rb_check_id(), rb_check_inheritable(), rb_class_inherited_p(), rb_class_superclass(), rb_const_set(), rb_cstr_to_dbl(), rb_current_receiver(), rb_declare_transcoder(), rb_define_class(), rb_define_class_id_under(), rb_define_module(), rb_define_module_id_under(), rb_econv_append(), rb_enc_associate_index(), rb_enc_check(), rb_enc_codelen(), rb_enc_codepoint_len(), rb_enc_set_default_external(), rb_enc_uint_chr(), rb_eof_error(), rb_error_frozen(), rb_error_frozen_object(), rb_execarg_addopt(), rb_f_trace_var(), rb_fiber_resume(), rb_file_expand_path_internal(), rb_fix2str(), rb_Hash(), rb_hash_rehash(), rb_insecure_operation(), rb_interrupt(), rb_invalid_str(), rb_io_check_byte_readable(), rb_io_check_char_readable(), rb_io_check_closed(), rb_io_check_initialized(), rb_io_check_writable(), rb_io_modestr_fmode(), rb_io_wait_readable(), rb_io_wait_writable(), rb_iseqw_line_trace_specify(), rb_lambda_call(), rb_marshal_define_compat(), rb_method_call_with_block(), rb_must_asciicompat(), rb_mutex_lock(), rb_notimplement(), rb_num2fix(), rb_num2long(), rb_num_get_rounding_option(), rb_num_zerodiv(), rb_obj_encoding(), rb_obj_init_copy(), rb_path_to_class(), rb_range_beg_len(), rb_secure(), rb_set_errinfo(), rb_set_safe_level(), rb_str_cat(), rb_str_cat_conv_enc_opts(), rb_str_concat(), rb_str_ellipsize(), rb_str_modify_expand(), rb_str_plus(), rb_str_resize(), rb_str_setter(), rb_str_to_dbl(), rb_str_unlocktmp(), rb_struct_init_copy(), rb_struct_members(), rb_sym_proc_call(), rb_thread_stop(), rb_thread_wakeup(), rb_time_new(), rb_tracearg_object(), rb_tracearg_raised_exception(), rb_tracearg_return_value(), rb_undef(), rb_uv_to_utf8(), rb_vm_cbase(), rb_vm_ifunc_new(), rb_vm_make_binding(), rb_yield_splat(), rsock_io_socket_addrinfo(), rsock_ipaddr(), rsock_raise_socket_error(), RUBY_ALIAS_FUNCTION(), ruby_malloc_size_overflow(), ruby_sized_xrealloc2(), value_to_generic(), and VpAlloc().

◆ rb_report_bug_valist()

void rb_report_bug_valist ( VALUE  file,
int  line,
const char *  fmt,
va_list  args 
)

Definition at line 597 of file error.c.

References NULL, report_bug_valist, and RSTRING_PTR.

◆ rb_rescue()

VALUE rb_rescue ( VALUE(*)(ANYARGS b_proc,
VALUE  data1,
VALUE(*)(ANYARGS r_proc,
VALUE  data2 
)

An equivalent of rescue clause.

Equivalent to begin .. rescue .. end.

It is same as

rb_rescue2(b_proc, data1, r_proc, data2, rb_eStandardError, (VALUE)0);
See also
rb_rescue2
rb_ensure
rb_protect

Definition at line 967 of file eval.c.

References rb_eStandardError, and rb_rescue2().

◆ rb_rescue2()

VALUE rb_rescue2 ( VALUE(*)(ANYARGS b_proc,
VALUE  data1,
VALUE(*)(ANYARGS r_proc,
VALUE  data2,
  ... 
)

An equivalent of rescue clause.

Equivalent to begin .. rescue err_type .. end

Parameters
[in]b_proca function which potentially raises an exception.
[in]data1the argument of b_proc
[in]r_proca function which rescues an exception in b_proc.
[in]data2the first argument of r_proc
[in]...1 or more exception classes. Must be terminated by (VALUE)0.

First it calls the function b_proc, with data1 as the argument. When b_proc raises an exception, it calls r_proc with data2 and the exception object if the exception is a kind of one of the given exception classes.

Returns
the return value of b_proc if no exception occurs, or the return value of r_proc if otherwise.
See also
rb_rescue
rb_ensure
rb_protect

Definition at line 895 of file eval.c.

References rb_execution_context_struct::cfp, rb_thread_struct::ec, and GET_THREAD.

Referenced by rb_rescue().

◆ rb_set_errinfo()

void rb_set_errinfo ( VALUE  err)

Sets the current exception ($!) to the given value.

Parameters
[in]erran Exception object or Qnil.
Exceptions
TypeErrorif err is neither an exception nor nil.
Note
this function does not raise the exception. Use rb_raise() when you want to raise.

Definition at line 1792 of file eval.c.

References err, GET_THREAD, NIL_P, rb_eException, rb_eTypeError, rb_obj_is_kind_of(), and rb_raise().

Referenced by ruby_require_internal().

◆ rb_str_end_with_asciichar()

int rb_str_end_with_asciichar ( VALUE  str,
int  c 
)

◆ rb_syntax_error_append()

VALUE rb_syntax_error_append ( VALUE  exc,
VALUE  file,
int  line,
int  column,
rb_encoding enc,
const char *  fmt,
va_list  args 
)

Definition at line 111 of file error.c.

References proc_entry::fn, NIL_P, NULL, rb_enc_str_new(), and RSTRING_PTR.

◆ rb_sys_enc_warning()

void rb_sys_enc_warning ( rb_encoding enc,
const char *  fmt,
  ... 
)

Definition at line 2553 of file error.c.

References errno, RTEST, ruby_verbose, and with_warning_string.

◆ rb_sys_fail()

void rb_sys_fail ( const char *  mesg)

◆ rb_sys_fail_str()

void rb_sys_fail_str ( VALUE  mesg)

Definition at line 2409 of file error.c.

References rb_exc_raise().

Referenced by ruby_setenv().

◆ rb_sys_warning()

void rb_sys_warning ( const char *  fmt,
  ... 
)

Definition at line 2529 of file error.c.

References errno, RTEST, ruby_verbose, and with_warning_string.

◆ rb_syserr_enc_warning()

void rb_syserr_enc_warning ( int  err,
rb_encoding enc,
const char *  fmt,
  ... 
)

Definition at line 2565 of file error.c.

References RTEST, ruby_verbose, and with_warning_string.

◆ rb_syserr_fail()

void rb_syserr_fail ( int  e,
const char *  mesg 
)

◆ rb_syserr_fail_str()

void rb_syserr_fail_str ( int  e,
VALUE  mesg 
)

◆ rb_syserr_new()

VALUE rb_syserr_new ( int  n,
const char *  mesg 
)

Definition at line 2377 of file error.c.

References Qnil, rb_str_new2, and rb_syserr_new_str().

Referenced by rb_mod_syserr_fail(), and rb_syserr_fail().

◆ rb_syserr_new_str()

VALUE rb_syserr_new_str ( int  n,
VALUE  arg 
)

Definition at line 2385 of file error.c.

References rb_class_new_instance().

Referenced by rb_mod_syserr_fail_str(), rb_syserr_fail_str(), and rb_syserr_new().

◆ rb_typeddata_inherited_p()

int rb_typeddata_inherited_p ( const rb_data_type_t child,
const rb_data_type_t parent 
)

Definition at line 749 of file error.c.

References rb_data_type_struct::parent.

Referenced by rb_typeddata_is_kind_of().

◆ rb_typeddata_is_kind_of()

int rb_typeddata_is_kind_of ( VALUE  obj,
const rb_data_type_t data_type 
)

◆ rb_unexpected_type()

void rb_unexpected_type ( VALUE  x,
int  t 
)

Definition at line 739 of file error.c.

References Qundef, rb_bug(), and UNDEF_LEAKED.

◆ rb_warn()

void rb_warn ( const char *  fmt,
  ... 
)

◆ rb_warning()

void rb_warning ( const char *  fmt,
  ... 
)

◆ rb_warning_string()

VALUE rb_warning_string ( const char *  fmt,
  ... 
)

Definition at line 277 of file error.c.

References RTEST, ruby_verbose, and with_warning_string.

◆ rb_warning_warn()

VALUE rb_warning_warn ( VALUE  mod,
VALUE  str 
)

Definition at line 179 of file error.c.

References rb_funcallv.

◆ ruby_deprecated_internal_feature()

void ruby_deprecated_internal_feature ( const char *  func)

Definition at line 139 of file error.c.

References rb_fatal(), and rb_print_backtrace().

Variable Documentation

◆ rb_cNameErrorMesg

VALUE rb_cNameErrorMesg

Definition at line 813 of file error.c.

◆ rb_cWarningBuffer

VALUE rb_cWarningBuffer

Definition at line 56 of file error.c.

◆ rb_eArgError

VALUE rb_eArgError

◆ rb_eEAGAIN

VALUE rb_eEAGAIN

Definition at line 52 of file error.c.

◆ rb_eEINPROGRESS

VALUE rb_eEINPROGRESS

Definition at line 54 of file error.c.

◆ rb_eEncCompatError

VALUE rb_eEncCompatError

Definition at line 808 of file error.c.

Referenced by rb_enc_check(), and rb_must_asciicompat().

◆ rb_eEncodingError

VALUE rb_eEncodingError

Definition at line 807 of file error.c.

Referenced by InitVM_transcode().

◆ rb_eEWOULDBLOCK

VALUE rb_eEWOULDBLOCK

Definition at line 53 of file error.c.

◆ rb_eException

VALUE rb_eException

Definition at line 794 of file error.c.

Referenced by rb_set_errinfo().

◆ rb_eFatal

VALUE rb_eFatal

Definition at line 798 of file error.c.

◆ rb_eIndexError

VALUE rb_eIndexError

Definition at line 803 of file error.c.

Referenced by rb_ary_resize(), rb_ary_store(), rb_str_cat_conv_enc_opts(), and rb_str_ellipsize().

◆ rb_eInterrupt

VALUE rb_eInterrupt

Definition at line 796 of file error.c.

Referenced by rb_interrupt().

◆ rb_eKeyError

VALUE rb_eKeyError

Definition at line 804 of file error.c.

◆ rb_eLoadError

VALUE rb_eLoadError

Definition at line 817 of file error.c.

◆ rb_eNameError

VALUE rb_eNameError

Definition at line 806 of file error.c.

Referenced by rb_autoload_str().

◆ rb_eNoMemError

VALUE rb_eNoMemError

Definition at line 812 of file error.c.

◆ rb_eNoMethodError

VALUE rb_eNoMethodError

Definition at line 809 of file error.c.

◆ rb_eNotImpError

VALUE rb_eNotImpError

Definition at line 811 of file error.c.

◆ rb_eRangeError

VALUE rb_eRangeError

◆ rb_eRuntimeError

VALUE rb_eRuntimeError

◆ rb_eScriptError

VALUE rb_eScriptError

Definition at line 815 of file error.c.

◆ rb_eSecurityError

VALUE rb_eSecurityError

Definition at line 810 of file error.c.

Referenced by rb_f_trace_var(), rb_insecure_operation(), and rb_secure().

◆ rb_eSignal

VALUE rb_eSignal

Definition at line 797 of file error.c.

Referenced by rb_threadptr_signal_raise().

◆ rb_eStandardError

VALUE rb_eStandardError

◆ rb_eSyntaxError

VALUE rb_eSyntaxError

Definition at line 816 of file error.c.

◆ rb_eSystemCallError

VALUE rb_eSystemCallError

Definition at line 819 of file error.c.

◆ rb_eSystemExit

VALUE rb_eSystemExit

Definition at line 795 of file error.c.

Referenced by rb_exit(), rb_f_abort(), and rb_threadptr_signal_exit().

◆ rb_eTypeError

VALUE rb_eTypeError

◆ rb_mErrno

VALUE rb_mErrno

Definition at line 820 of file error.c.

◆ rb_mWarning

VALUE rb_mWarning

Definition at line 55 of file error.c.

◆ ruby_description

const char ruby_description[]

Definition at line 33 of file version.c.

Referenced by rb_assert_failure().

◆ ruby_static_id_status

ID ruby_static_id_status

Definition at line 27 of file eval.c.