Рубрики
Без рубрики

Struts – <глобальное исключение> пример пользовательского обработчика исключений

– Стойки – <глобальное исключение> пример пользовательского обработчика исключений

Автор оригинала: mkyong.

В Struts framework <глобальное исключение> используется для отображения пользовательской страницы ошибок вместо стандартной страницы ошибок HTTP Status 500 по умолчанию:

Страница ошибок по умолчанию выглядит уродливо и совсем не профессионально. Кроме того, сообщение об ошибке является достаточно описательным, чтобы информация о вашей системе могла быть передана конечному пользователю.

1. <глобальное исключение> + обработчик исключений по умолчанию

Вот <глобальное исключение> с примером обработчика исключений по умолчанию, объявленным в “struts.config.xml ” чтобы заменить страницу ошибок HTTP 500 по умолчанию вашей пользовательской описательной страницей ошибок.




 

 
	
		//...
	
 
        
	    
	
	
	
		//...
	
 

В приведенном выше примере обработчик исключений Struts по умолчанию ” org.apache.struts.action. Обработчик исключений ” будет вызван, когда какое-либо исключение IOException будет вызвано Действием, и перенаправит его в файл error.jsp . Ключ – это ключ в файле свойств ресурсов сообщений.

Ключ – это ключ в файле свойств ресурсов сообщений.

#common module error message
error.global.mesage = 
   Ooooppps... Sometime wraong in this site, please come back later

Ключ – это ключ в файле свойств ресурсов сообщений.

<%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%>





Struts Global Exception Example

2. <глобальное исключение> + пользовательский обработчик исключений

В обработчике исключений по умолчанию у вас нет возможности контролировать, как обращаться с исключением. В большинстве случаев вам может потребоваться зарегистрировать исключение для дальнейшего анализа. Для этого вам понадобится пользовательский обработчик исключений для регистрации всех исключений в другом хранилище данных, таком как файловая система или база данных.

Вот пример пользовательского обработчика исключений, который нужно настроить для ” java.lang. Исключение “, так что оно вызывается для любого исключения, вызванного действием. Чтобы создать пользовательский обработчик исключений, вам необходимо создать подкласс ” org.apache.struts.action. Обработчик исключений ” и переопределите метод execute.

Обработчик исключений || ” и переопределите метод execute.

package com.mkyong.common.exception;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ExceptionHandler;
import org.apache.struts.config.ExceptionConfig;
 
public class MyCustomExceptionHandler extends ExceptionHandler{
 
  private static final Logger logger = 
      Logger.getLogger(MyCustomExceptionHandler.class);
	
  @Override
  public ActionForward execute(Exception ex, ExceptionConfig ae,
	ActionMapping mapping, ActionForm formInstance,
	HttpServletRequest request, HttpServletResponse response)
	throws ServletException {
		
	//log the error message
	logger.error(ex);
		
	return super.execute(ex, ae, mapping, formInstance, request, response);
  }
}



 

 
	
		//...
	
 
        
	    
	
	
	
		//...
	
 

В приведенном выше примере, когда исключение создается действием, оно вызовет ваш пользовательский обработчик исключений Mycustomexceptionhandler метод execute() вместо обработчика исключений по умолчанию.

Ссылка

  1. Обработчик исключений Struts – http://struts.apache.org/1.x/userGuide/building_controller.html

Оригинал: “https://mkyong.com/struts/struts-global-custom-exception-example/”