GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
SVN::Web::X(3) User Contributed Perl Documentation SVN::Web::X(3)

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

  use SVN::Web::X;

  ...

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

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.

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.

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

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.

Copyright 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>

2012-10-17 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.