logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SVN::Web::X - exceptions for SVN::Web

Description

       SVN::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.

Examples

Asimpleexception,withnoplaceholders.
       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."

   Anexceptionwithplaceholders
       In 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.

Name

       SVN::Web::X - exceptions for SVN::Web

Synopsis

         use SVN::Web::X;

         ...

         SVN::Web::X->throw(error => '(error message %1)',
                            vars => [$var_to_interpolate]);

Usage In Svn::Web Actions

       If 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.

       "error"
           A  string  describing  the error.  This string should be short, and key to a longer internationalised
           message.

           This string may contain placeholders; %1, %2, %3, and so on.  These will be replaced by the values of
           the variables passed in the "vars" key.

           By convention this string should be enclosed in parentheses, "(" and ")".  This helps make them stand
           out in the interface, if localised versions of the error message have not yet been written.

       "vars"
           An array reference.  The first entry in the array will replace the %1  placeholder  in  "error",  the
           second entry will replace the %2 placeholder, and so on.

           If there are no placeholders then pass a reference to an empty array.

See Also