.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "WebAuth::Exception 3pm" .TH WebAuth::Exception 3pm "2020-12-21" "perl v5.32.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" WebAuth::Exception \- Rich exception for errors from WebAuth API methods .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 10 \& my $token; \& my $wa = WebAuth\->new; \& eval { \& $token = $wa\->token_decode ($input); \& # ... \& }; \& if ($@ && ref ($@) eq \*(AqWebAuth::Exception\*(Aq) { \& my $e = $@; \& print \*(Aqstatus: \*(Aq, $e\->status, "\en"; \& print \*(Aqmessage: \*(Aq, $e\->error_message, "\en"; \& print \*(Aqdetail: \*(Aq, $e\->detail_message, "\en"; \& print "$e\en"; \& die $e\->verbose_message; \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" All WebAuth methods, and most methods in WebAuth::Key, WebAuth::Keyring, WebAuth::KeyringEntry, and WebAuth::Token::* classes, will throw an exception on error. Exceptions produced by the underlying C \s-1API\s0 call will be represented by a WebAuth::Exception object. .PP You can use this object like you would normally use $@ and print it out or do string comparisons with it and it will convert to the string representation of the complete error message. But you can also access the structured data stored inside the exception by treating it as an object and using the methods defined below. .SH "METHODS" .IX Header "METHODS" .IP "status ()" 4 .IX Item "status ()" Returns the WebAuth status code for the exception, which will be one of the WebAuth::WA_ERR_* constants. .IP "error_message ()" 4 .IX Item "error_message ()" Returns the WebAuth error message. For most WebAuth functions, this will consist of a generic error message followed by more detail about this specific error in parentheses. .IP "detail_message ()" 4 .IX Item "detail_message ()" Returns the \*(L"detail\*(R" message in the exception. The detail message is additional information created with the exception when it was raised and is usually the name of the WebAuth C function that raised the exception. .IP "verbose_message ()" 4 .IX Item "verbose_message ()" Returns a verbose error message, which consists of all information available in the exception, including the status code, error message, line number and file, and any detail message in the exception. .IP "to_string ()" 4 .IX Item "to_string ()" This method is called if the exception is interpolated into a string. It is a wrapper around the verbose_message method. .IP "spaceship ([\s-1STRING\s0], [\s-1SWAP\s0])" 4 .IX Item "spaceship ([STRING], [SWAP])" This method is called if the exception object is compared to a string via cmp. It will compare the given string to the verbose error message and return the result. If \s-1SWAP\s0 is set, it will reverse the order to compare the given string to the verbose error. .SH "AUTHORS" .IX Header "AUTHORS" Roland Schemers and Russ Allbery . .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBWebAuth\fR\|(3) .PP This module is part of WebAuth. The current version is available from .