|
NAMESVN::Web::X - exceptions for SVN::Web SYNOPSIS use SVN::Web::X;
...
SVN::Web::X->throw(error => '(error message %1)',
vars => [$var_to_interpolate]);
DESCRIPTIONSVN::Web::X implements exceptions for SVN::Web. Derived from Exception::Class, It provides a simple mechanism for throwing exceptions, catching them, and ensuring that friendly, localised error messages are generated and sent to the user's browser. USAGE IN SVN::Web ACTIONSIf an SVN::Web action that you are writing needs to stop processing and raise an error, throw an SVN::Web::X exception. throw() takes a hash with two mandatory keys.
EXAMPLESA simple exception, with no placeholders.In the action: sub run {
...
if(! frob_repo()) {
SVN::Web::X->throw(error => '(frob failed)',
vars => []);
}
...
}
In the en.po file for the localised text. msgid "(frob failed)" msgstr "There was a problem trying to frob the repository. This " "probably indicates a permissions problem." An exception with placeholdersIn the action: sub run {
...
# $path is a repo path, $rev is a repo revision
my $root = $fs->revision_root($rev);
my $kind = $root->check_path($path);
if($kind == $SVN::Node::none) {
SVN::Web::X->throw(error => '(path %1 does not exist in rev %2)',
vars => [$path, $rev]);
}
}
In the en.po file for the localised text. msgid "(path %1 does not exist in rev %2)" msgstr "The path <tt>%1</tt> could not be found in the repository " "at revision %2. This may be a typo in the path or the revision " "number. SVN::Web should never normally generate a link like this. " "If you followed a link from SVN::Web (rather than from an e-mail, "or similar) please report this as a bug." As you can see, the localised text can be much friendlier and more informative to the user than the error message. COPYRIGHTCopyright 2003-2004 by Chia-liang Kao "<clkao@clkao.org>". Copyright 2005-2007 by Nik Clayton "<nik@FreeBSD.org>". Copyright 2012 by Dean Hamstead "<dean@fragfest.com.au>". This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See <http://www.perl.com/perl/misc/Artistic.html>
|