class OpenSSL::OpenSSLError
Общий класс ошибок для OpenSSL. Все классы ошибок в этой библиотеке наследуются от этого класса.
Этот класс указывает, что базовая библиотека OpenSSL сообщила об ошибке.
Атрибуты
Записи очереди ошибок OpenSSL, сохранённые в момент возникновения исключения. Та же информация выводится в stderr, если установлено значение true для OpenSSL.debug.
Это массив из нуля или более строк, упорядоченных от самой старой к самой новой. Формат строк не является стабильным и может различаться в разных версиях OpenSSL или этого расширения Ruby.
См. также справочную страницу ERR_get_error(3).
Общедоступные методы экземпляра
static VALUE
osslerror_detailed_message(int argc, VALUE *argv, VALUE self)
{
VALUE str;
#ifdef HAVE_RB_CALL_SUPER_KW
// Ruby >= 3.2
if (RTEST(rb_funcall(rb_eException, rb_intern("method_defined?"), 1,
ID2SYM(rb_intern("detailed_message")))))
str = rb_call_super_kw(argc, argv, RB_PASS_CALLED_KEYWORDS);
else
#endif
str = rb_funcall(self, rb_intern("message"), 0);
VALUE errors = rb_attr_get(self, id_i_errors);
// OpenSSLError was not created by ossl_make_error()
if (!RB_TYPE_P(errors, T_ARRAY))
return str;
str = rb_str_resurrect(str);
rb_str_catf(str, "\nOpenSSL error queue reported %ld errors:",
RARRAY_LEN(errors));
for (long i = 0; i < RARRAY_LEN(errors); i++) {
VALUE err = RARRAY_AREF(errors, i);
rb_str_catf(str, "\n%"PRIsVALUE, err);
}
return str;
} Возвращает сообщение исключения с добавленными записями сохранённой очереди ошибок OpenSSL.
Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.