Я пытаюсь вызвать существующее приложение VFP 6, используя Jacob, который является мостом COM для Java.
val vfp = new Application(new ActiveXComponent("VisualFoxPro.Application").getProperty("Application").toDispatch())
vfp.setVisible(false)
try {
vfp.doCmd("do my.exe with myconfig.txt")
} catch {
case t: Throwable => t.printStackTrace
} finally {
vfp.doCmd("close data")
vfp.doCmd("clear all")
vfp.doCmd("clear")
vfp.quit
vfp.safeRelease
}
Когда нет условий ошибки, этот код выполняется хорошо и генерирует ожидаемый .dbfs. Проблема заключается в том, что при возникновении ошибки (.dbf не найден, файл используется другим пользователем и т. д.) всплывает окно с графическим интерфейсом и останавливает выполнение программы до тех пор, пока я не отменю ее с помощью мыши. Я хочу, чтобы эта программа работала на сервере без взаимодействия с пользователем, поэтому это не сработает.
Как я могу изящно обрабатывать ошибки, желательно без внесения изменений в программу VFP 6?