Difference: TWikiOopsExceptionDotPm (2 vs. 3)

Revision 322 Jan 2008 - TWikiContributor

Line: 1 to 1
 

Package TWiki::OopsException

Deleted:
<
<
extends Error
  Exception used to raise a request to redirect to an Oops URL.
Added:
>
>
 An OopsException thrown anywhere in the code will redirect the
Changed:
<
<
browser to a url based on the oops script. oops requires a template parameter, that is the name of a template file from the templates directory. This file will be expanded and the
>
>
browser to a url based on the oops script. oops requires the name of an oops template file from the templates directory. This file will be expanded and the
 parameter values passed to the exception instantiated. The result will be shown in the browser.
Added:
>
>
Plugins may throw TWiki::OopsException. For example:

use Error;

...

throw TWiki::OopsException( 'bathplugin',
                            def => 'toestuck',
                            web => $web,
                            topic => $topic,
                            params => [ 'bigtoe', 'hot tap' ] );
 

ClassMethod new ($template,...)

Changed:
<
<
  • template is the name of an oops template
>
>
  • template is the name of an oops template. e.g. 'bathplugin' refers to templates/oopsbathplugin.tmpl
 The remaining parameters are interpreted as key-value pairs. The following keys are used:
  • web will be used as the web for the oops
  • topic will be used as the topic for the oops
  • def - is the (optional) name of a TMPL:DEF within the template
Changed:
<
<
  • keep - if set, the exception handler should try it's damndest to retain parameter values from the query.
>
>
  • keep - if set, the exception handler should try its damnedest to retain parameter values from the query.
 
  • params is a reference to an array of parameters. These will be substituted for %PARAM1%, %PARAM2% ... %PARAMn% in the template.
Added:
>
>
For an example of how to use the def parameter, see the oopsattention template.

NOTE: parameter values are automatically and unconditionally entity-encoded

 

ObjectMethod stringify ([$session]) -> $string

Changed:
<
<
Generates a string representation for the object. if a session is passed in, and the excpetion specifies a def, then that def is expanded. This is to allow internal expansion of oops exceptions for example when performing bulk operations.
>
>
Generates a string representation for the object. if a session is passed in, and the exception specifies a def, then that def is expanded. This is to allow internal expansion of oops exceptions for example when performing bulk operations, and also for debugging.

ObjectMethod redirect ($twiki)

Generate a redirect to an 'oops' script for this exception.

If the 'keep' parameter is set in the exception, it saves parameter values into the query as well. This is needed if the query string might get lost during a passthrough, due to a POST being redirected to a GET.

 
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 1999-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.TWikiOopsExceptionDotPm.