Как обрабатывать пользовательские исключения с помощью пользовательского перехватчика в Spring MVC? - PullRequest
0 голосов
/ 11 сентября 2018

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

У меня есть этот класс обработчика перехватчика:

public class RNTExceptionInterceptor implements ThrowsAdvice{

    /** Creating instance of the Log class for logging the errors. */

    private static final Logger log = LogManager.getLogger(RNTExceptionInterceptor.class);
    /**
     * This method is used to generate log on each target objects method's exception and set the error code for
     * 
     * @param method Method object
     * @param args set of arguments
     * @param target Target class
     * @param ex Error Object
     * @throws RNTSystemException when any system related exception occurs
     * @throws RNTBusinessException when any business related exception occurs
     */
    public void afterThrowing(Method method, Object[] args, Object target, Throwable ex)
            throws RNTSystemException, RNTBusinessException {

        log.error("Exception in method: " + method.getName() + " Exception is: " + ex.getMessage(), ex);
        log.info(getStackTrace(ex));
        log.info("Class of the exception is "+ex.getClass());



        if (ex instanceof RNTBusinessException) {
            throw (RNTBusinessException)ex;

        } else if (ex instanceof RNTSystemException) {
            throw (RNTSystemException)ex;

        } else if (ex instanceof NullPointerException) {
            throw new RNTSystemException(SYSTEM_ERROR, ex);

        } else {
            throw new RNTSystemException(ex.getMessage(), ex);
        }
    }

и это мой контроллер:

@RequestMapping(value = "/displayKra.do")
    public ModelAndView displayKra(HttpServletRequest request, HttpServletResponse res) throws RNTException,SQLException, PropertyVetoException{

        HttpSession session = request.getSession();
        Dashboard dashboard = (Dashboard) session.getAttribute(DASHBOARD_SESSION_ATTRIBUTE);
        AppraisalType appraisaltype=null;

        try{
            appraisaltype = appraisalDao.getManagerList(dashboard.getStaffID());
            appraisaltype.setUserMessage(getMessage(MANAGER_LIST_FETCHED_SUCCESSFULLY));
        }catch(RNTSystemException e){
                log.error(e.getMessage(),e);
                appraisaltype.setErrorMessage(e.getMessage());
        }
        return new ModelAndView(KRA_1_JSP, "appraisaltype", appraisaltype);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...