Java ImageJ-如何在遇到错误时继续批处理

Java ImageJ-如何在遇到错误时继续批处理,java,error-handling,batch-processing,imagej,Java,Error Handling,Batch Processing,Imagej,我在ImageJ中编写了一个宏,用于在BMP图像文件列表上运行批处理“测量”。我使用headless.jar在远程linux机器上以headless模式运行代码 每当ImageJ在读取/加载列表中的图像时遇到错误或异常时,它就会退出该过程。因此,我必须不断监视该过程,并手动强制ImageJ跳过该文件 即使遇到错误/异常,是否有办法强制ImageJ继续该过程?并在日志或其他文件中报告文件名?在ImageJ宏语言中无法显式处理异常。但是,在进行有问题的宏调用之前,可以通过检查前置条件等来防止某些类型

我在ImageJ中编写了一个宏,用于在BMP图像文件列表上运行批处理“测量”。我使用headless.jar在远程linux机器上以headless模式运行代码

每当ImageJ在读取/加载列表中的图像时遇到错误或异常时,它就会退出该过程。因此,我必须不断监视该过程,并手动强制ImageJ跳过该文件


即使遇到错误/异常,是否有办法强制ImageJ继续该过程?并在日志或其他文件中报告文件名?

在ImageJ宏语言中无法显式处理异常。但是,在进行有问题的宏调用之前,可以通过检查前置条件等来防止某些类型的异常

例如,如果文件列表中包含不存在的文件,则可以使用
File.exists(path)
确保文件存在,然后再尝试打开它

当然,并非所有的错误条件都可以通过这种方式轻松检查(例如,格式错误的BMP),因此我同意将宏重写为Imagej插件是最完整的解决方案。使用宏记录器(
Plugins>Macros>Record
)设置为在插件模式下录制,而不是在宏模式下录制,您可以获得一个良好的开端。一旦您有了要执行的相关命令,您就可以使用的将其轻松打包到插件中:

  • 文件>新建>脚本
  • Language>Java
  • Templates>Java>Bare插件
  • 将命令粘贴到
    run
    方法中

  • <>斐济维基,请参阅Image插件的详细信息。

    听起来你应该考虑将宏重新编写为java插件。这将为您提供执行所需错误处理的选项。