사용자 정의 Bot 명령 예외 만들기
- 최종 업데이트2023/05/08
사용자 정의 Bot 명령 예외 만들기
BotCommandException
클래스를 사용하여 오류 보고를 위한 사용자 정의 Bot 명령 예외를 만들 수 있습니다. 메소드에서 예외를 Throw하고 Catch할 수 있습니다. 사용자 정의 예외를 사용하면 자세한 오류 메시지를 지정하고 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;
}
예외가 발견될 경우 예제에 정의된 대로 오류 구문을 통해 예외를 Catch합니다.