Spec-Zone.ru › Ruby 4.0
  1. OpenSSL::
  2. OpenSSLError

class OpenSSL::OpenSSLError

Родительский класс:
StandardError

Общий класс ошибок для OpenSSL. Все классы ошибок в этой библиотеке наследуются от этого класса.

Этот класс указывает, что базовая библиотека OpenSSL сообщила об ошибке.

Атрибуты

errors [R]

Записи очереди ошибок OpenSSL, сохранённые в момент возникновения исключения. Та же информация выводится в stderr, если установлено значение true для OpenSSL.debug.

Это массив из нуля или более строк, упорядоченных от самой старой к самой новой. Формат строк не является стабильным и может различаться в разных версиях OpenSSL или этого расширения Ruby.

См. также справочную страницу ERR_get_error(3).

Общедоступные методы экземпляра

detailed_message(**) → string Показать исходный код
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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API