Java 试捕问题
我正在从控制器抛出一个异常,如下所示Java 试捕问题,java,exception,Java,Exception,我正在从控制器抛出一个异常,如下所示 try { if (formValidationResult.size() > 0) { validationResults.put(errorMsg, formValidationResult); } } catch (Exception exception) { LOGGER.error("Error while performing validation in FormController -->"
try {
if (formValidationResult.size() > 0) {
validationResults.put(errorMsg, formValidationResult);
}
} catch (Exception exception) {
LOGGER.error("Error while performing validation in FormController -->"
+ exception.getMessage());
throw new ServiceException(exception.getMessage());
}
if (validationResults.size() > 0) {
throw new ValidationFailureException(validationResults,"Validation Error");
}
这里我得到一个验证错误
com.ge.dbt.common.exception.ValidationFailureException:验证
错误
我可以在这里包含一个catch块来捕获
ValidationFailureException
吗?是的,Java允许。您可以使用try-catch块来引发和处理异常
try
{
throw new Exception();
}
catch (Exception e) {
// TODO: handle exception
}
在这里,您将在同一块中抛出和处理异常我不知道为什么有人愿意这样做。
更好的方法是让您的方法定义为
抛出ValidationFailureException
,并从调用此代码的函数中处理该异常。是Java允许的。您可以使用try-catch块抛出并处理异常
try
{
throw new Exception();
}
catch (Exception e) {
// TODO: handle exception
}
在这里,您将在同一块中抛出和处理异常我不知道为什么有人愿意这样做。
更好的方法是让您的方法定义为
抛出ValidationFailureException
,并从调用此代码的函数处理该异常。假设validationResult和formValidationResult是集合,我不明白为什么需要将对大小的调用封装起来,并将方法放入try-catch块中?检查这些集合的大小或插入新值时,您希望出现什么异常
我不能给你密码,因为我正在用手机打字,但你可以这样做:
就这样。干净简单。在抛出ValidationFailureException之前,不需要任何try-catch块,也不需要单独检查validationResult是否为空 假设validationResult和formValidationResult是集合,我不明白为什么需要将对size的调用封装起来,并将方法放入try-catch块中?检查这些集合的大小或插入新值时,您希望出现什么异常 我不能给你密码,因为我正在用手机打字,但你可以这样做:
就这样。干净简单。在抛出ValidationFailureException之前,不需要任何try-catch块,也不需要单独检查validationResult是否为空 当结果的大小为
>0
时,将在显示的代码中引发异常。您的问题不太清楚。为什么要捕获刚刚抛出的异常?当结果的大小为>0
时,您将在显示的代码中得到抛出的异常。您的问题不太清楚。为什么要捕获刚刚抛出的异常?