TWiki::OopsException
Exception used to raise a request to redirect to an Oops URL.
An OopsException thrown anywhere in the code will redirect 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.
Plugins may throw TWiki::OopsException. For example:
use Error; ... throw TWiki::OopsException( 'bathplugin', def => 'toestuck', web => $web, topic => $topic, params => [ 'bigtoe', 'hot tap' ] );
template
is the name of an oops template. e.g. 'bathplugin' refers to templates/oopsbathplugin.tmpl
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
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.
For an example of how to use the def
parameter, see the oopsattention
template.
NOTE: parameter values are automatically and unconditionally entity-encoded
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.
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.