カスタム Bot コマンドの例外の作成
- 最終更新日2023/05/08
カスタム Bot コマンドの例外の作成
BotCommandException
クラスを使用して、エラー レポート用のカスタム Bot コマンドの例外を作成することができます。メソッド内で例外をスローしたりキャッチしたりすることができます。カスタム例外を使用すると、詳細なエラー メッセージを指定して、catch ブロック内でより多くのカスタム エラーを処理できます。
例: カスタム BotCommandException
の定義
この例では、DemoException というカスタム例外を定義しています。このクラスでは、BotCommandException を拡張し、スーパークラスの同等のコンストラクターを呼び出すことで、複数のコンストラクターを実装しています。使用するコンストラクターのみを実装すれば、スーパークラスの残りのコンストラクターは無視できます (Java クラスはコンストラクターを継承しないので、再実装する必要があります)。
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);
}
}
BotCommandException クラスの多くのコンストラクターは、引数として java.lang.Throwable オブジェクトを受け入れます。カスタム例外に原因となった例外を含ませる場合は、同様のコンストラクターを実装し、Throwable オブジェクト (通常は他の例外オブジェクト) をカスタム例外に渡すことができます。
次の例では、前述の例で定義した例外の使用方法を示しています。
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;
}
例外が見つかった場合は、例外をキャッチし、例で定義したようにエラー ステートメントを経由することになります。