Criar exceções de comando de bot personalizadas
- Última atualização2023/05/08
Você pode usar a classe BotCommandException
para criar exceções de comando de bot personalizadas para relatórios de erros. Com as exceções personalizadas, você pode lançá-las e capturá-las em seus métodos. Com exceções personalizadas, você pode especificar mensagens de erro detalhadas e obter um tratamento de erros mais personalizado nos blocos catch.
Exemplo: Definir uma BotCommandException
personalizada
Este exemplo define uma exceção personalizada chamada DemoException. Esta classe estende BotCommandException e implementa vários construtores ao chamar a quantidade equivalente de construtores na superclasse. Você só precisa implementar os construtores que deseja usar e pode ignorar o restante dos construtores da superclasse (classes Java não herdam construtores, portanto você deve reimplementá-los).
package com.automationanywhere.botcommand.samples.exceptions;
import com.automationanywhere.botcommand.data.Value;
import com.automationanywhere.botcommand.exception.BotCommandException;
import java.util.Optional;
public class DemoException extends BotCommandException {
public DemoException(String message, Throwable cause) {
super(message, cause);
}
public DemoException(String message) {
super(message);
}
public DemoException(Throwable cause) {
super(cause);
}
public DemoException(String message, Throwable cause, Optional<Value> outputVariables) {
super(message, cause, outputVariables);
}
}
Muitos construtores da classe BotCommandException aceitam um objeto java.lang.Throwable como argumento. Você pode implementar construtores semelhantes e passar objetos Throwable (geralmente outros objetos de exceção) para as exceções personalizadas quando quiser que sua exceção personalizada inclua a exceção que a causou.
O exemplo a seguir mostra como usar a exceção definida no exemplo anterior.
public static boolean checkRecordsExist(Connection con, String query)
throws SQLException {
Statement stmt = null;
try {
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
rs.last();
if(rs.getRow() > 0)
return true;
} catch (SQLException e ) {
throw new DemoException("Problem running statement", e);
} finally {
if (stmt != null) { stmt.close(); }
}
return false;
}
Se uma exceção for encontrada, isso capturará a exceção, por meio de uma instrução de erro, conforme definido no exemplo.