在关闭JAVA程序之前调用析构函数来调用方法

时间:2015-08-18 19:44:36

标签: java selenium selenium-webdriver

我正在用Selenium和JAVA编写测试,有时当我收到错误时我使用summary.my.factor<-function(object,...) { x<-prop.table(table(object)) setNames(sprintf("%1.2f%%",100*x),names(x)) } my.summary<-function(object,...) { f<-function(x) if(inherits(x,"factor")) structure(x,class=c("my.factor",class(x))) else x summary(as.data.frame(lapply(object,f)),...) } my.summary(chickwts) 来关闭我的测试或在其他情况下我的测试程序被迫完成,但我需要运行一个函数在任何情况下关闭程序之前,所以在Java中是否有任何析构函数,如果我在那里调用我的函数,如果有任何东西迫使我的程序完成它将被调用(保证)?

2 个答案:

答案 0 :(得分:0)

您正在寻找的是out,或使用关闭钩子(请参阅Useful example of a shutdown hook in Java?),但您真的不应该这样做......

请勿使用finalizer。抛出一个异常并让它回滚你的调用堆栈,允许调用堆栈上的每个方法处理System.exit(1)块中的资源清理。

如果您需要控制退出代码,您可以随时在main方法中捕获异常并在那里调用try-finally

答案 1 :(得分:0)

如果您正在使用JUnit来推动测试,那么您可能有兴趣使用@Before@After来注释设置和拆卸方法。正如安德烈亚斯所说,你应该抛出异常,然后JUnit将处理调用拆解方法,即使出现错误。