… | |
… | |
136 | =item on_error => $callback->($fcp, $message) |
136 | =item on_error => $callback->($fcp, $message) |
137 | |
137 | |
138 | Invoked on any (fatal) errors, such as unexpected connection close. The |
138 | Invoked on any (fatal) errors, such as unexpected connection close. The |
139 | callback receives the FCP object and a textual error message. |
139 | callback receives the FCP object and a textual error message. |
140 | |
140 | |
141 | =item on_failure => $callback->($fcp, $type, $backtrace, $args, $error) |
141 | =item on_failure => $callback->($fcp, $type, $args, $backtrace, $error) |
142 | |
142 | |
143 | Invoked when an FCP request fails that didn't have a failure callback. See |
143 | Invoked when an FCP request fails that didn't have a failure callback. See |
144 | L<FCP REQUESTS> for details. |
144 | L<FCP REQUESTS> for details. |
145 | |
145 | |
146 | =back |
146 | =back |
… | |
… | |
445 | |
445 | |
446 | This is a popular choice, but it makes handling errors hard - make sure |
446 | This is a popular choice, but it makes handling errors hard - make sure |
447 | you never generate protocol errors! |
447 | you never generate protocol errors! |
448 | |
448 | |
449 | In the failure case, if an C<on_failure> hook exists, it will be invoked |
449 | In the failure case, if an C<on_failure> hook exists, it will be invoked |
450 | with the FCP object, the request type (the name of the method), a |
450 | with the FCP object, the request type (the name of the method, an arrayref |
451 | (textual) backtrace as generated by C<Carp::longmess>, and arrayref |
|
|
452 | containing the arguments from the original request invocation and the |
451 | containing the arguments from the original request invocation, a (textual) |
453 | error object from the server, in this order, e.g.: |
452 | backtrace as generated by C<Carp::longmess>, and the error object from the |
|
|
453 | server, in this order, e.g.: |
454 | |
454 | |
455 | on_failure => sub { |
455 | on_failure => sub { |
456 | my ($fcp, $request_type, $backtrace, $orig_args, $error_object) = @_; |
456 | my ($fcp, $request_type, $orig_args, $backtrace, $error_object) = @_; |
457 | |
457 | |
458 | warn "FCP failure ($type), $error_object->{code_description} ($error_object->{extra_description})$backtrace"; |
458 | warn "FCP failure ($type), $error_object->{code_description} ($error_object->{extra_description})$backtrace"; |
459 | exit 1; |
459 | exit 1; |
460 | }, |
460 | }, |
461 | |
461 | |