У меня есть 3 метода, в которых я выполняю валидации в большинстве внутренних методов. Я хочу знать, были ли неудачные проверки или нет, и сообщение об ошибке, если проверки не удались. я знаю, что могу сделать что-то, как показано ниже с помощью исключений для передачи сообщения об ошибке ..Что такое хорошая практика для проверки валидации в java
String methodA(parms){
try{
return methodB(params);
}
catch(UserDefinedRuntimeException ure){
return ure.getMessage();
}
}
String methodB(params){
try{
return methodC(params);
}
catch(UserDefinedRuntimeException ure){
throw ure;
}
catch(Exception otherException){
//handle Exception
otherException.printStackTrace();
}
}
String methodC(params){
if(params.equals("A")||params.equals("B")||params.equals("C")){
return dosomething();
}
else{
throw UserDefinedRuntimeException("invalid input :params should be in [A,B,C]");
}
}
Но проблема в том, многие говорят, что исключения являются дорогостоящими для создания
так я прибегая к помощи я нашел другой подход, предложенный в
Best way to return status flag and message from a method in Java
, как показано ниже ..
class Response{
int status;
String errMsg;
}
String methodA(params){
Response response = methodB(params);
if(response.status == 1){
return "success";
}
else{
return response.errMsg;
}
}
Response methodB(params){
Response response = methodC(params);
if(response.status == 0){
return response;
}
else{
//do processing
response = new Response();
response.status =1;
return response;
}
}
Response methodC(params){
if(valid(params)){
//dosomething
Response response = new Response();
response.status =1;
return response;
}
else{
Response response = new Response();
response.status = 0;
response.errMsg = "invalid data";
return response;
}
}
, но проблема не нужна классу POJO.
Просьба предложить некоторый подход к решению этой проблемы.
Спасибо заранее.
Не знаю, почему вопрос, который говорит, что Java в заголовке отмечен для C# и .NET. – Richard
Похоже, что мнение основано, ответ, вероятно, «компромисс между читабельностью и производительностью», –