Edit Edit

Java Servlet FAQ

How do you handle errors in a servlet?

1) return an error code with HttpServletResponse's sendError():

public void sendError(int statuscode)

Some Web servers may look at the error code and generate a response body that explains the error to the client.

2) return a status code with HttpServletResponse's setStatus() and return a response body that explains the error.

3) log the error to the server's log file with ServletContext's log():

public void log(String msg)

For example, if your servlet gets an exception, it should catch it and describe it in your servlet's log file so that you can debug the exception:

try {
  // run some code that could cause an exception to be thrown
catch (Exception e) {
  getServletContext().log("Servlet caught an exception: " + e.getMessage());

If your servlet doesn't catch an exception that gets propagated up to the Web server, the Web server may or may not log or report the exception to the client. It depends on the Web server that is running the servlet. In general, it is better to catch all exceptions yourself so that your servlet isn't tied to a particular Web server. i.e., make your servlet portable to other Web servers.

Last updated 12/18/1999 08:14:28 PM