class OpenSSL::OpenSSLError
Generische Fehlerklasse für OpenSSL. Alle Fehlerklassen in dieser Bibliothek erben von dieser Klasse.
Diese Klasse zeigt an, dass ein Fehler von der zugrunde liegenden OpenSSL-Bibliothek gemeldet wurde.
Attribute
OpenSSL-Fehlerwarteschlangeneinträge, die zum Zeitpunkt der Ausnahme erfasst wurden. Die gleichen Informationen werden auf stderr ausgegeben, wenn OpenSSL.debug auf true gesetzt ist.
Dies ist ein Array von null oder mehr Zeichenketten, geordnet vom ältesten zum neuesten. Das Format der Zeichenketten ist nicht stabil und kann sich über Versionen von OpenSSL oder Versionen dieser Ruby-Erweiterung ändern.
Siehe auch die Manpage ERR_get_error(3).
Öffentliche Instanzmethoden
Source
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;
}
Gibt die Ausnahmemeldung zurück, dekoriert mit den erfassten OpenSSL-Fehlerwarteschlangeneinträgen.