Best EvoMaster code snippet using org.evomaster.client.java.controller.problem.rpc.RPCExceptionHandler.handleTException
Source:RPCExceptionHandler.java
...86 if (!isRootThriftException(e)){87 //SimpleLogger.info("Exception e is not an instance of TException of Thrift, and it is "+ e.getClass().getName());88 return false;89 }90 handled = handleTException(e, dto);91 if (!handled){92 SimpleLogger.error("Fail to extract exception type info for an exception "+ e.getClass().getName());93 }94 } catch (ClassNotFoundException ex) {95 SimpleLogger.error("ERROR: in handling Thrift exception with error msg:"+ex.getMessage());96 //throw new IllegalStateException("ERROR: in handling Thrift exception with error msg:"+ex.getMessage());97 }98 return handled;99 }100 private static boolean handleDefinedException(Object e, EndpointSchema endpointSchema, RPCType rpcType, RPCExceptionInfoDto dto) throws ClassNotFoundException {101 if (endpointSchema.getExceptions() == null) return false;102 for (NamedTypedValue p : endpointSchema.getExceptions()){103 String type = p.getType().getFullTypeNameWithGenericType();104 // skip to handle root TException here105 if (rpcType == RPCType.THRIFT && type.equals(THRIFT_EXCEPTION_ROOT))106 continue;107 if (isInstanceOf(e, type)){108 p.setValueBasedOnInstance(e);109 dto.exceptionDto = p.getDto();110 dto.type = RPCExceptionType.CUSTOMIZED_EXCEPTION;111 return true;112 }113 }114 return false;115 }116 private static boolean handleTException(Object e, RPCExceptionInfoDto dto) {117 Method getType = null;118 try {119 getType = e.getClass().getDeclaredMethod("getType");120 getType.setAccessible(true);121 int type = (int) getType.invoke(e);122 dto.type = getExceptionType(extract(e), type);123 return true;124 } catch (NoSuchMethodException | ClassNotFoundException | InvocationTargetException | IllegalAccessException ex) {125 SimpleLogger.error("Fail to get type of TException with getType() "+ex.getMessage());126 }127 return false;128 }129 private static String getExceptionMessage(Object e) {130 Method getMessage = null;...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!