缺少退货声明,我缺少什么

问题描述 投票:-1回答:2

我编写了一个方法,它将通过返回true和false来确认控制器,我返回true在try中如果一切正常它将返回true并且我在catch块中返回false,但仍然方法显示错误"missing return statement"什么是最好的方法它。

用java编写的下面的方法会将true或false发送回控制器。

其次我想把这里的异常消息带到控制器,我想回到字符串,这是好方法,

请建议我进行异常处理的最佳方法

 public boolean pickSalayData(String yearMonth, String regionId, String circleId, Userdetail loginUser) throws MyExceptionHandler {
        String tableSuffix = yearMonth.substring(4, 6) + yearMonth.substring(0, 4);

        log.info("Pick Salary Data From ERP " + DateUtility.dateToStringDDMMMYYYY(new Date()));
        List<SalaryDetailReport> detailReports = hRMSPickSalaryDataDAO.findAll(yearMonth, regionId, circleId);

        TransactionDefinition def = new DefaultTransactionDefinition();
        TransactionStatus trstatus = transactionManager.getTransaction(def);
        try {
            List<SalaryDetailReport> salaryDetailReport = null;
            int countDetail = 0;
            if (detailReports != null && detailReports.size() > 0) {

                for (SalaryDetailReport salary : detailReports) {
                    try {
                        if (countDetail % COMMIT_COUNT == 0) {
                            if (salaryDetailReport != null) {
                                salaryDetailReportDAO.save(salaryDetailReport, tableSuffix);
                                reportHistoryDAO.save(salaryDetailReport, loginUser);
                            }
                            salaryDetailReport = new ArrayList<SalaryDetailReport>();
                        }
                        salaryDetailReport.add(salary);
                        countDetail++;

                    } catch (Exception e) {
                        log.error("Error on Save Salary Pay Head Details Data from ERP to Prayas .");
                    }
                }
                if (salaryDetailReport != null && salaryDetailReport.size() > 0) {
                    salaryDetailReportDAO.save(salaryDetailReport, tableSuffix);
                    reportHistoryDAO.save(salaryDetailReport, loginUser);
                }
            } else {
                throw new MyExceptionHandler("No record for Save in Database from ERP.");
            }
            salaryDetailReportDAO.update(tableSuffix, regionId, circleId);
            List<SalaryDetailReport> reports = salaryDetailReportDAO.findAll(tableSuffix, regionId, circleId);
            if (reports != null && reports.size() > 0) {
                for (SalaryDetailReport salaryDetail : reports) {
                    try {
                        SalaryDetail sd = new SalaryDetail();
                        sd.setDetailReport(salaryDetail);
                        salaryDetailDAO.save(sd, tableSuffix);
                    } catch (Exception e) {
                        log.error("Error occured", e);
                        e.printStackTrace();
                        throw new MyExceptionHandler(" Error :" + e.getMessage());
                    }
                }
                System.out.println("data found");

            } else {
                log.error("Salary Record Not Found.");
                throw new MyExceptionHandler("No record Found.");
            }
            salaryDetailDAO.updateEarningDeduction(tableSuffix);
            //salaryDetailDAO.updateEarningDeductionsInSDT();
            transactionManager.commit(trstatus);
            try {
                hRMSPickSalaryDataDAO.update(regionId, circleId, yearMonth);
                return true;
            } catch (Exception ex) {
                log.error("Some error : ", ex);
            }

//            //   System.out.println("Completed =============================");
        } catch (MyExceptionHandler ex) {
            transactionManager.rollback(trstatus);
            ex.printStackTrace();
            log.error("Failed to Save Salary data  :" + ex.getMessage());
            return false;

        } catch (Exception ex) {
            transactionManager.rollback(trstatus);
            ex.printStackTrace();
            log.error("Error occured on Save Salary data.", ex);
            return false;
        }
    }
java spring-mvc
2个回答
2
投票

您缺少以下return块的catch声明:

 catch (Exception ex) {
                log.error("Some error : ", ex);
 }

您可以在此return块中添加catch语句,也可以在mehtod末尾添加catch语句


0
投票

如果此代码抛出异常,则不会输入以下 try { hRMSPickSalaryDataDAO.update(regionId, circleId, yearMonth); return true; } catch (Exception ex) { log.error("Some error : ", ex); **edit** return `true||false`; } } catch (...) { return something; } 代码,因此没有返回值

qazxswpoi
© www.soinside.com 2019 - 2024. All rights reserved.