public package Foswiki::AccessControlException 
  public package Foswiki::AccessControlException is a Error 
Exception used raise an access control violation. This exception has the
following fields: 
-  web- the web which was being accessed
-  topic- the topic being accessed (if any)
-  user- canonical username of the person doing the accessing. Use   the methods of the Foswiki::Users class to get more information about the   user.
-  mode- the access mode e.g. CHANGE, VIEW etc
-  reasona text string giving the reason for the refusal.
The exception may be thrown by plugins. If a plugin throws the exception, it
will normally be caught and the browser redirected to a login screen (if the
user is not logged in) or reported (if they are and just don't have access).
  Throwing an exception 
If your code needs to abort processing and inform the user (or the higher level caller)
that some operation was denied, throw an 
AccessControlException.
    use Error qw(:try);
    use Foswiki::AccessControlException;
    ...
    unless (
        Foswiki::Func::checkAccessPermission(
            "VIEW", $session->{user}, undef, $topic, $web
        )
      )
    {
        throw Foswiki::AccessControlException( "VIEW", $session->{user}, $web,
            $topic,  $Foswiki::Meta::reason );
    }
  Catching an exception 
If you are calling a function that can detect and throw an access violation, and
you would prefer to intercept the exception to perform some further processing,
use the 
try { } catch { } structure.
    my $exception;
    try {
        Foswiki::Func::moveWeb( "Oldweb", "Newweb" );
    } catch Foswiki::AccessControlException with {
        $exception = shift;
    } otherwise {
        ...
    };
  Notes 
Since date indicates where functions or parameters have been added since
the baseline of the API (TWiki release 4.2.3). The 
date indicates the
earliest date of a Foswiki release that will support that function or
parameter.
Deprecated date indicates where a function or parameters has been
deprecated. Deprecated
functions will still work, though they should
not be called in new plugins and should be replaced in older plugins
as soon as possible. Deprecated parameters are simply ignored in Foswiki
releases after 
date.
Until date indicates where a function or parameter has been removed.
The 
date indicates the latest date at which Foswiki releases still supported
the function or parameter.
  ClassMethod new($mode, $user, $web, $topic, $reason) 
 
-  $mode- mode of access (view, change etc)
-  $user- canonical user name of user doing the accessing
-  $web- web being accessed
-  $topic- topic being accessed
-  $reason- string reason for failure
All the above fields are accessible from the object in a catch clause
in the usual way e.g. 
$e->{web} and 
$e->{reason}
  ObjectMethod stringify() → $string 
Generate a summary string. This is mainly for debugging.