我将log4j(apache软件)作为记录器添加到我的webdriver测试中。
我想知道log.error语句是否应该作为良好实践放在catch块中?
我们不应该使用异常e对象,只需使用这样的e: e.printStackTrace()?
将log.error添加到catch块中是否正确?
public static WebElement destinationTextBox(WebDdriver driver){
try{
element = driver.findElement(by...) ; //this can raise exception if no element found
}
//it will be caught here
catch(NoSuchElementException e){
log.error( "no element found") ;
}
// if element found and no exception, just log 'element found'
log.info(Destination text box element found) ;
答案 0 :(得分:2)
为什么不呢?但最好提供原始例外以及消息,例如log.error("Message", e);
答案 1 :(得分:0)
在生产代码的情况下,记录确实是一个好主意。但是,既然您已经提到这是一个测试代码,我建议捕获一个已检查的异常并将其重新抛出为未经检查的异常:
catch(NoSuchElementException e){
throw new RuntimeException(e);
}
这样您就不需要调查任何日志文件以查找可能的测试失败,但您的测试框架会明确地告诉您有关问题的信息。