9.1. Simplifying Exception Processing in an Action
Problem
You want to reduce the number of
try . . .
catch
blocks within your Action
classes.
Solution
Remove the exception-handling
code from your Action
,
and define global and local exception handlers in your
struts-config.xml
file, as shown in Example 9-1.
Example 9-1. Global and local exception handling (partial)
... <global-exceptions> <exception key="error.unknown.user" type="com.oreilly.strutsckbk.ch09.UnknownUserException" path="/securityError.jsp"/> </global-exceptions> ... <action-mappings> <action path="/Login" type="com.oreilly.strutsckbk.ch09.LoginAction" scope="request" name="LoginForm" validate="true" input="/login.jsp"> <exception key="error.password.match" type="com.oreilly.strutsckbk.ch09.PasswordMatchException"> <forward name="success" path="/login_success.jsp"/> </action> ...
Discussion
Prior to Struts 1.1, the handling of exceptions was left to the
devloper's devices. Exceptions returned from calls
to the business layer from an Action
had to be
handled individually in your code. Because the perform(
)
method of Struts 1.0 only allowed you to throw
IOException
and
ServletException
, you didn't have
much choice in the matter:
public ActionForward perform( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ...
Any checked exception thrown within the body of perform()
had to be caught and handled. In some cases, it was appropriate to catch ...
Get Jakarta Struts Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.